פעמים רבות נרצה לשלוח נתונים לדף מסויים, ואחת הדרכים הנפוצות לעשות זאת היא דרך ה-URL. מידע שנשלח דרך ה-URL מופיע אחרי כתובת הדף (שאליו נשלח המידע), בתבנית של: "?var1=value1&var2=value2&var3=value3" וכך הלאה עד הנתון האחרון. ה-? מפריד בין הכתובת של הדף לבין מחרוזת הנתונים, וה-& מפריד בין נתון לנתון. var1, var2 ו-var3 הם שמות הנתונים, ואילו value1, value2 ו-value3 הם הערכים של נתונים אלו (בהתאמה). אם אנו מדליקים בקונפיגורציה את האפשרות של register_globals, אז הנתונים מה-URL ישמרו גם במשתנים גלובליים.
PHP יודעת לתרגם נתונים מה-URL באופן אוטומטי, ולשמור אותם כמשתנים במערך הגלובלי $_GET, כך שהמפתחות במערך הם שמות הנתונים ב-URL, והערכים במערך הם הערכים של הנתונים ב-URL (בהתאמה).
לדוגמא, ה-URL הבא: "http://www.myhost.com/download.php?cat_id=24&file=digger.exe", יוסיף למערך $_GET את המשתנים: $_GET['cat_id']="24" ו-$_GET['file']="digger" (ובתלות בקונפיגורציה, יוסיף גם למשתנים הגלובליים את: $cat_id ו-$file). סוג המשתנה שבו נשמרים הערכים של הנתונים הוא תמיד מחרוזת (string).
כשאנו לא רוצים להעביר ערך עם הנתון bg_color, אנו לא מוסיפים אותו כלל ל-URL.
*/
>WHITE (default)</A><BR>
</BODY>
אם רוצים להעביר נתון עם ערך שמכיל תווים שלא מתאימים ל-URL (כגון: רווח, #, @ וכו'), יש להמיר תווים אלו לסימנים מיוחדים שיכולים לעבור דרך ה-URL ללא בעיות (תווים אלו מתחילים עם %). PHP מספקת פונקציות שמטפלות בתווים הבעייתיים ובסימנים המיוחדים המתאימים להם - urlencode() ו-urldecode(). רצוי להשתמש בפונקציה urlencode() בעיקר כאשר הערכים שרוצים להעביר הם משתנים, או כאשר משתמשים בתווים בעייתיים ב-URL.
תגובות בנושא
רק תיקון
08-12-02 06:02 אייל בן-סימון
#353
בכתובת לא חייבים לרשום
$_SERVER['PHP_SELF']
הדבר אינו נחוץ
הHTML עושה זאת אוטומטית
לאייל
01-11-02 13:01 חסוי (חחחח)
#552
טעית...
ה HTML מכיל את הכתובת עד לסלאש האחרון, לכן תצטרך לכתוב את שם העמוד שוב.
לא טוב במקרה שעוברים דירה.
יש לי בעיה מוזרה
02-11-02 06:01 מישהו
#607
אני לא מצליח להשתמש ב $_GET זה לא מתייחס אליו..
לא משנה איפה אני מנסה זה תמיד לא מקבל=
גם נגיד שאני משתמש בסקריפט שכתוב פה
_GET, למרות שלא שלחתי
04-12-03 09:01 תומר בר
#819
מה קורה כאשר אני עושה _GET לפרמטר למרות שלא נשלח אחד כזה לאתר??
איך אפשר לעשות שלא יקרה כלום??
לא קורה כלום
04-12-03 11:00 אלי חן (מנהל)
#825
אם אתה ניגש לפרמטר דרך _GET אבל הפרמטר לא נשלח דרך ה URL, אז הערך יהיה NULL (ערך ריק)... במקרים מסויימים (תלוי בקונפיגורציה), שימוש במשתנה שלא קיים יוציא התראה על כך שהמשתנה אינו מאותחל. בדר"כ מקנפגים את PHP לא להדפיס התראות, כך שלמעשה שום דבר יוצא דופן לא קורה.
זה לא עובד...
02-12-04 03:00 רז אוזן
#1437
העתקתי את הקוד, וזה פשוט לא פועל..:|
תשובה לשניר.
08-12-04 07:01 איתן בןאב
#1739
בתחילת הקוד יש:
echo "<BODY bgcolor "";
הגרשים הראשונים והאחרונים הם על מנת ליצור מחרוזת.התו זה כדי שהשרת ידפיס את ה" כפי שהוא ולא יסיים בזה את המחרוזת.
אחרי זה ישנה לולאת switch שמדפיסה את הצבע באמצע ואחרי סוף לולאת הswitch יש את הסוגר של
הבודי (<") וה n זה על מנת לרדת שורה.
כך שיוצא הקוד הזה:
<BODY bgcolor"הצבע שיודפס מהלולאה">
גדולים
06-12-09 14:00 אלכס נוסינוב
#2843
פשוט גדולים הכל מובן כמו שצריך! תודה!
request_uri https
09-12-16 19:01 מוטי כושר
#2907
מנסה לעבוד עם
$url = parse_url($_SERVER['REQUEST_URI']);
לא הצליח עם HTTTPS , מה חסר?
https://www.seokru.com/