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

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

למרות גורמים אלה , לפניכם רשימה של משתנים מוגדרים מראש הזמינים בהתקנה רגילה של PHP בגרסה 3 כמודול של שרת Apache 1.3.6 .

לקבלת רשימה מלאה של כל המוגדרים מראש הזמינים לשימוש ( והמון מידע שימושי נוסף) , יש לעיין ולהשתמש בפונקציה phpinfo( ) .

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

משתנים של שרת Apache

משתנים אלו מוגדרים על-ידי שרת Apache . בעת הפעלת שרת מסוג זה יתכן שחלק ממשתנים אלו לא מוגדרים ויתכן שיוגדרו משתנים אחרים שאינם רשומים פה . רוב המשתנים מפורטים ב מפרט CGI 1.1 וסביר שיהיו זמינים לשימוש .

יש לציין כי כל המשתנים האלה לא יהיו מוגדרים בהרצת סקריפט PHP משורת הפקודה .

$GATEWAY_INTERFACE

גרסת ה-CGI שהשרת תומך בה . ( בדרך-כלל 'CGI / 1.1 ' ) .

$SERVER_NAME

שם ה-host שתחתיו רץ הסקריפט הנוכחי . אם הסקריפט רץ תחת host וירטואלי , משתנה זה יכיל את שם ה-host הוירטואלי .

$SERVER_SOFTWARE

מחרוזת הזיהוי של השרת שמועברת בכותרים ( headers ) בעת משוב לפניות (requests ) .

$SERVER_PROTOCOL

שם וגרסת הפרוטוקול לקבלת הפניות . ( בדרך-כלל 'HTTP / 1.0 ' )

$REQUEST_METHOD

סוג השיטה שבעזרתה התבצעה פנייה לשרת . יכיל מחרוזת כגון : ' GET' ,'HEAD' , 'POST' , 'PUT ' .

$QUERY_STRING

מחרוזת הפנייה ( query string ) שדרכה התבצעה גישה לעמוד .

$DOCUMENT_ROOT

הספריה הראשית שתחתיה רץ הסקריפט הנוכחי לפי הגדרות השרת .

$HTTP_ACCEPT

תכולת כותר ה - Accept : בפנייה הנוכחית , אם קיים כותר כזה .

$HTTP_ACCEPT_CHARSET

תכולת כותר ה - Accept-Charset : בפנייה הנוכחית , אם קיים כותר כזה . לדוגמה : ' iso-8859-1,*,utf-8 ' .

$HTTP_ACCEPT_ENCODING

תכולת כותר ה - Accept-Encoding : בפנייה הנוכחית , אם קיים כותר כזה . לדוגמה : ' gzip ' .

$HTTP_ACCEPT_LANGUAGE

תכולת כותר ה - Accept-Language : בפנייה הנוכחית , אם קיים כותר כזה . לדוגמה : ' en ' .

$HTTP_CONNECTION

תכולת כותר ה - Connection : בפנייה הנוכחית , אם קיים כותר כזה . לדוגמה : ' Keep-Alive ' .

$HTTP_HOST

תכולת כותר ה - Host : בפנייה הנוכחית , אם קיים כותר כזה .

$HTTP_REFERER

כתובתו של העמוד ( אם קיים ) שהפנה את הדפדפן לעמוד הנוכחי . משתנה זה נקבע על-ידי דפדפן המשתמש . לא כל הדפדפנים תומכים באפשרות זו .

$HTTP_USER_AGENT

תכולת כותר ה - User_Agent : בפנייה הנוכחית , אם קיים כותר כזה . מכיל מחרוזת המצהירה סוג הדפדפן המשמש לצפייה בעמוד הנוכחי . כגון : Mozilla / 4.5 [ en ] (X11 ; U ; Linux 2.2.9 i586 ) . ניתן להשתמש בערך זה ובערך הפונקציה get_browser( ) כדי לאפשר בנייה של העמוד תוך התחשבות ביכולתו וסוגו של הדפדפן .

$REMOTE_ADDR

כתובת ה - IP שממנה המשתמש צופה בעמוד הנוכחי .

$REMOTE_PORT

ה-port שדרכו מתקשר מחשבו של המשתמש עם השרת .

$SCRIPT_FILENAME

שם הנתיב ( pathname ) האבסולוטי שבו מורץ הסקריפט הנוכחי .

$SERVER_ADMIN

הערך המועבר לאופציית ה-SERVER_ADMIN של שרת Apache בקובץ ההגדרות של השרת . אם הסקריפט רץ תחת host וירטואלי , משתנה זה יוגדר ל-host וירטואלי זה .

$SERVER_PORT

מספר ה-port המשמש לתקשורת של השרת . הרירת המחדל היא 80 . כאשר משתמשים ב-SSL למשל , מספר זה ישתנה לפי ה-port שהוגדר כ-secure HTTP port .

$SERVER_SIGNATURE

מחרוזת המכילה את גרסת השרת ושם ה-host הוירטואלי . המחרוזת תצורף לדפים הנוצרים על-ידי השרת אם אופציה זו מאופשרת .

$PATH_TRANSLATED

נתיב מבוסס לפי מערכת הקבצים של הסקריפט הנוכחי ( זה לא document root של הסקריפט ) לאחר שבוצע מיפוי וירטואלי לריאלי .

$SCRIPT_NAME

מכיל את נתיב הסקריפט הנוכחי . שימושי לעמודים שמצביעים לעצמם .

$REQUEST_URI

כתובת ה-URI המשמשת לגישה לעמוד הנוכחי . לדוגמה : / index.html ' .



משתני סביבה

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

משתני סביבה אחדים יכללו את משתני ה-CGI הממוקמים שם כאשר PHP רצה כמודול שרת וגם כאשר PHP רצה כמעבד CGI .

משתני-PHP

משתנים אלו נוצרים על-ידי PHP . כל המשתנים בצורת $HTTP_*_VARS יהיו זמינים רק אם האופציה track_vars מאופשרת . כאשר אופציה זו מאופשרת , משתנים אלו תמידיוגדרו , אפילו אם יוגדרו כמערכים ריקים כדי למנוע ממשתמש בעל כוונת זדון לשנות את ערכם .

הערה : החל מגרסה 4.0.3 של PHP האופציה track_vars תמיד פעילה ללא התחשבות בהגדרתה בקובץ ההגדרות של PHP .

הערה : נוספו משתנים " סופר-גלובלים " חדשים מגרסה 4.1.0 . יש לעיין ב הכרזה של PHP 4.1.0 למידע נוסף . המשתנים החדשים $_GET , $_POST , $_ENV , $_SERVER , $_COOKIE , $_REQUEST $_FILES , and $_SESSION הם מערכים שמוגדרים כ"סופר-גלובלים " מאחר שהם זמינים תמיד ללא תלות בטווח הגדרת הנתונים (scope ) . משתנים אלו מחליפים את מערכי ה - $HTTP_*_VARS שהיו בעבר בשימוש .

אם אופציית register_globals מאופשרת , יהיו משתנים אלו זמינים גם כן בטווח המשתנים הגלובלים בנפרד ממערכי ה - $HTTP_*_VARS הו - $_* . למידע נוסף , יש לעיין בפרק אבטחת המידע שכותרתו אופן השימוש ברישום גלובלים .

$argv

מערך המכיל את רשימת הארגומנטים המועברים לסקריפט . בעת הרצת סקריפט משורת הפקודה , מערך זה מאפשר גישה בסגנון שפת C לפרמטרים משורת הפקודה . כאשר עמוד מקבל פנייה בשיטת GET , משתנה זה יכיל את ה-query string .

$argc

מכיל את מספר הפרמטרים המועברים באמצעות שורת הפקודה לסקריפט ( אם הסקריפט מורץ משורת הפקודה ) .

$PHP_SELF

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

$HTTP_COOKIE_VARS

מערך אסוציאטיבי של המשתנים המועברים לסקריפט הנוכחי דרך עוגיות HTTP .

$_COOKIE

מערך אסוציאטיבי של המשתנים המועברים לסקריפט הנוכחי דרך עוגיות HTTP . משתנה זה מוגדר בכל טווח משתנים כלשהו . נוסף ל-PHP החל מגרסה 4.1.0 .

$HTTP_GET_VARS

מערך אסוציאטיבי של המשתנים המועברים לסקריפט הנוכחי דרך שיטת HTTP GET .

$_GET

מערך אסוציאטיבי של המשתנים המועברים לסקריפט הנוכחי דרך שיטת HTTP GET . משתנה זה מוגדר בכל טווח משתנים כלשהו . נוסף ל-PHP החל מגרסה 4.1.0 .

$HTTP_POST_VARS

מערך אסוציאטיבי של המשתנים המועברים לסקריפט הנוכחי דרך שיטת HTTP POST .

$_POST

מערך אסוציאטיבי של המשתנים המועברים לסקריפט הנוכחי דרך שיטת HTTP POST . משתנה זה מוגדר בכל טווח משתנים כלשהו . נוסף ל-PHP החל מגרסה 4.1.0 .

$HTTP_POST_FILES

מערך אסוציאטיבי של משתנים המכילים מידע על קבצים שהועלו לשרת בשיטת HTTP POST . יש לעיין ב העלאת קבצים בשיטת POST למידע על תכולתו של $HTTP_POST_FILES . נוסף ל-PHP החל מגרסה 4.0.0 .

$_FILES

מערך אסוציאטיבי של משתנים המכילים מידע על קבצים שהועלו לשרת בשיטת HTTP POST . יש לעיין ב העלאת קבצים בשיטת POST למידע על תכולתו של $_FILES . משתנה זה מוגדר בכל טווח משתנים כלשהו . נוסף ל-PHP החל מגרסה 4.1.0 .

$HTTP_ENV_VARS

מערך אסוציאטיבי של המשתנים המועברים לסקריפט הנוכחי מסביבת האב .

$_ENV

מערך אסוציאטיבי של המשתנים המועברים לסקריפט הנוכחי מסביבת האב . משתנה זה מוגדר בכל טווח משתנים כלשהו . נוסף ל-PHP החל מגרסה 4.1.0 .

$HTTP_SERVER_VARS

מערך אסוציאטיבי של המשתנים המועברים לסקריפט הנוכחי מהשרת . ערכים אלו מקבילים למשתני שרת Apache המתוארים למעלה .

$_SERVER

מערך אסוציאטיבי של המשתנים המועברים לסקריפט הנוכחי מהשרת . ערכים אלו מקבילים למשתני שרת Apache המתוארים למעלה . משתנה זה מוגדר בכל טווח משתנים כלשהו . נוסף ל-PHP החל מגרסה 4.1.0 .

$HTTP_SESSION_VARS

מערך אסוציאטיבי המכיל את משתני ה-session המועברים לסקריפט הנוכחי .

$_SESSION

מערך אסוציאטיבי המכיל את משתני ה-session המועברים לסקריפט הנוכחי . משתנה זה מוגדר בכל טווח משתנים כלשהו . יצירת תאים חדשים במערך זה תגרום לרישום אוטומטי של נתונים אלו כמשתני session בדומה לפעולה המתבצעת בעת קריאה לפונקציה session_register( ) . נוסף ל-PHP החל מגרסה 4.1.0 .

$_REQUEST

מערך אסוציאטיבי הממזג את כל המידע ממשתני GET , POST ו-Cookie . במילים אחרות , הוא מכיל את כל המידע המגיע מהמשתמש ומבחינת אבטחת מידע אינו מומלץ לשימוש כי לא ניתן לבטוח במידע זה . נוסף ל-PHP החל מגרסה 4.1.0 .