אתה נמצא כאן יסודות השפה  >>  משתנים  >>  משתנים מוגדרים מראש

משתנים מוגדרים מראש

PHP מספקת משתנים גלובליים רבים הנותנים מידע על השרת, על הלקוח ועל התוכנית הנוכחית שרצה, וניתן להשתמש בהם בכל מקום בתוכנית (ללא צורך בהצהרה על global בתוך פונקציות, יוסבר בהמשך). משתנים אלו נתונים בצורה של מערכים, שהמפתחות שלהם מגדירים את סוג המידע. כמה מן המערכים הגלובליים הללו הם:

$GLOBALS
מכיל את כל המשתנים הגלובליים שהוגדרו עד כה בתוכנית (ייחוס ע"י מצביע), כך ששמות המפתחות בו הם שמות המשתנים הגלובליים של התוכנית.
$_SERVER ($HTTP_SERVER_VARS)
משתנים שהוגדרו ע"י השרת, ומכילים מידע על השרת שעליו רצה תוכנית ה-PHP.
$_GET ($HTTP_GET_VARS)
משתנים שמספקים מידע על HTTP GET (נתונים שנשלחו לקובץ דרך מתודת GET).
$_POST ($HTTP_POST_VARS)
משתנים שמספקים מידע על HTTP POST (נתונים שנשלחו לקובץ דרך מתודת POST).
$_COOKIE ($HTTP_COOKIE_VARS)
משתנים שמספקים מידע על HTTP COOKIES (עוגיות).
$_SESSION
משתנים שרשומים בדיון (session) הנוכחי.
$_FILES
משתנים שמספקים מידע על HTTP POST FILE UPLOADS (פתיחת קבצים).
$_ENV ($HTTP_ENV_VARS)
משתנים שמספקים מידע על הסביבה שבה רצה התוכנית.
$_REQUEST
משתנים שמספקים מידע על נתונים שנשלחו לקובץ דרך כל מתודה שהיא (GET, POST, COOKIE, FILES, SESSION), ולכן לא ממש בטיחותית לשימוש.

המערכים שרשומים בסוגריים מגדירים את אותו המערך שרשום מחוץ לסוגריים. ההבדל בין 2 המערכים הללו, הוא שהמערך שמתחיל עם $_* הוא מערך גלובלי שנגיש בכל מקום בתוכנית (גם בפונקציות, בלי הצהרת global), ואילו המערך שרשום בסוגריים המתחיל עם $HTTP_ הוא מערך גלובלי שלא נגיש בפונקציות ובמחלקות ללא הצהרת global. כיום מרבים להשתמש במערכים של $_*, גם אם לא בתוך פונקציות.

כדאי להזכיר כאן שני משתנים מוגדרים מראש (של $_SERVER) שמאוד חשובים ושימושיים:
* $PHP_SELF - מכיל את כתובת ה-URL של הדף הנוכחי. רצוי מאוד להשתמש במשתנה זה מאשר לכתוב באופן מפורש את הכתובת לדף הנוכחי, כי אם משנים את המיקום של הדף, הכתובת שלו משתנה בהתאם, ואם לא משתמשים במשתנה זה, יהיה צורך לשנות את הכתובת לדף הנוכחי בכל מקום שהוא כתוב במפורש.
* $REMOTE_ADDR - מכיל בתוכו את כתובת ה-IP של מחשב הלקוח.

מידע נוסף על המערכים הגלובליים של PHP תוכלו למצוא באתר הבית של PHP בקישור הבא: Predefined Variables.


תגובות בנושא

מתן ערך למשתנה 02-12-03 07:02
 רמי חגג
#717

תודה עבור האתר הניפלא.
איך יוצרים מצב, שבו המשתמש בתוכנית מכנים ערך למשתמש?
רמי

טפסים 02-12-03 11:01
 אלי חן (מנהל)
#726

לא ממש הבנתי אותך, אבל יכול להיות שהתכוונת לשימוש בטפסים (form) שבאמצעותם ניתן לשלוח ערכים מהמשתמש אל התוכנית ב-PHP.
(ראה את התגים FORM ו INPUT).

איך ולמה? 04-12-03 18:01
 חי עזורי
#838

לא הבנתי איך משתמשים בזה, באיזה מצב משתמשים בזה ולמה זה עוזר

זה עוזר... 08-12-03 05:01
 טל
#1015

לדוגמה שעושים פורמים אם רוצים לסלק משתמש וגם למנוע ממנו לעשות משתמש חדש משתמשים ב-
$_SERVER ($REMOTE_ADDR)
כדי למנוע ממנו להרשם שוב

לא תמיד... 08-12-03 05:00
 אלי חן (מנהל)
#1042

לרוב המחשבים הביתיים יש כתובת IP משתנה.. זאת אומרת שבחיבור הבא לאינטרנט, סביר להניח שהמשתמש יקבל כתובת IP אחרת.. ואז החסימה לא תפעל עליו. חוץ מזה שאת כתובת ה-IP שחסמת, יוכל לקבל משתמש אחר, ואז הוא יחסם ללא עוול בכפיו.. ;)
אז העניין הזה קצת מורכב יותר..

אז איך? 09-12-03 04:02
 טל חדד
#1094

אז איך הם חוסמים בכל זאת?
ללא עוגיות.
נ.ב:אני ראיתי שעניתה על השאלה הזאת אים אני לא טועה זה מה שכתבת:
"תחשוב על אפשרות לבדוק בעזרת העוגיות אם ה ip השתנה וגם ההפך" אבל מכיוון שיצאה גרסה גבוהה יותר, אין אפשרות לעשות בה? כי בכל זאת הם מצליחים לחסום,או שלא

חסימת משתמש 09-12-03 18:02
 אלי חן (מנהל)
#1128

חסימת משתמש אנונימי (שאינו רשום במערכת משתמשים) ניתן לחסימה ע"י session, עוגיות וסימון IP כחסום. כל אחת משלושת החסימות הללו ניתן לשבור בקלות, ולכן החסימה לא ממש יעילה.

משתנה גלובלי.... 31-10-03 02:01
 [ללא שם]
#1175

איך אני יכול לעשות שמשתנה כלשהו ישמר כך שאם משתמש אחד קידם אותו ב-1 ומשתמש אחר גם קידם אז המשתנה קודם ב 2.... כמו APPLICAIOTN ב ASP.....

תגדיר את המשתנה כגלובלי 31-10-03 17:01
 אלי חן (מנהל)
#1206

אם הינך נמצא ב-global, אז כל משתנה שתגדיר שם יהיה גלובלי. בתוך פונקציות, יש לציין במפורש שהמשתנה הוא גלובלי (global), או להשתמש במערך הקבוע $_GLOBALS...

שאלה 01-12-04 15:01
 גיא
#1396

כאשר אני כותב:$PHP_SELF
בתצוגה מופיע לי בעצם מיקום הקובץ על הדומיין, זאת אומרת:
/bla/bla.php
איך אני יכול להציג את הכתובת המלאה(כולל דומיין)?
זאת אומרת:
www.domain.com/bla/bla.php

תשובה 07-12-04 15:01
 אלון אסקלסקי
#1682

תרשום זאת כך
$SERVER_NAME$PHP_SELF

איך צריך לרשום את המשתנים הקבועים? 04-12-05 14:01
 נעם קייזר
#2177

ניסיתי לעשות כמה דברים אבל אני לא מצליח להפעלי את המשתנים המוגדרים מראש
רשמתי:
<?php echo "your ip is:$_SERVER($REMOTE_ADDR)";?>
ושיניתי את הסוגריים ל[] וזה לא פעל רק יצא לי כך:
your ip is:Array()

לא הבנתי 06-12-05 17:01
 כהן חח
#2503

?איך מציגים את התדברים ניסיתי ככה מה לא טוב

<?
echo "$PHP_SELF ";
?>

גם ניסיתי לשים במשתנה ואז להדפיס וזה עדין לא טוב איך עושים??
תודה לעוזרים

GLOBALS 07-12-05 00:01
 אופק גולן
#2556

אני לא הבנתי איך אני יכול להגדיר משתנה גלובאלי..


לדף הקודםכללי -הקודם
לתחילת הדףלתחילת הדף
הבא- תחום הגדרהלדף הבא