![ישן](https://static.fresh.co.il/images/vBulletin/statusicon/post_old.gif)
27-09-2010, 19:04
|
|
|
חבר מתאריך: 05.11.06
הודעות: 45
|
|
בעיה עם session_$ (סקופ)
שלום
מתוך הדף הזה
http://www.php.net/manual/en/intro.session.php
אני מבין שהמערך session הוא משתנה גלובלי
ציטוט:
function or by adding a new key to the $_SESSION superglobal array
|
כי לא עובד לי כמו שציפיתי אני בניתי משהו קטן כדוגמא:
בקובץ common.php שמוכלל ב-main.php יש בדיקת קיום של $_SESSION['start'] (יוצא ג'יבריש... אפשר לראות למטה) ואם קיים, אז נכתב שקיים.
אחר כך יש בדיקה "אם לא קיים" ובמקרה הזה יש יצירת session, הכרזה של משתנה והצבת ערך ok, והדפסה session start
ב main.php מעבר להכללה יש הדפסה של "מיקום" start של מערך session וקישור לדף first.php
ב-first.php יש גם כן הדפסה של מיקום start מתוך session וקישור חזרה ל-main.php
כשאני פותח את main.php אני מקבל
ציטוט:
session start
link to page one, click here
ok
|
עד לפה הכל בסדר
אם לוחצים על הקישור מקבלים:
ציטוט:
Notice: Undefined variable: _SESSION in C:\wamp\www\sessions\first.php on line 11
link to main page, click here
|
אז אני לא רואה במה המשתנה הזה superglobal כמו שנאמר ב-
http://www.php.net/manual/en/intro.session.php
אבל עכשיו (מבחינתי) גרוע מזה, כשאני חוזר ל-main.php אני שוב פעם מקבל
ציטוט:
session start
link to page one, click here
ok
|
כאשר אני ציפיתי ל:
ציטוט:
session is already started
link to page one, click here
ok
|
איך שאני רואה את הדברים לא רק שזה לא גובלי, הוא גם נעלם כאשר אני עוזב את הדף, מה שנראה ממש לא הגיוני.
אז איפה הטעות שלי, או האם זה יכול לנבוע מהקונפיגורציה הדיפולטית שלי (wamp)
תודה רבה
הנה הקוד:
דף ליצירת session
קוד PHP:
<?php // common.php (session test)
if (isset($_SESSION['start'])) { echo "session is already started"; }
if (!isset($_SESSION['start'])) { session_start(); $_SESSION['start'] = "ok"; echo "session start"; } ?>
דף ראשי
קוד PHP:
<?php // main.php include 'common.php'; ?>
<!DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> main page <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body>
<p>link to page one, <a href="first.php">click here</a></p>
<?php echo $_SESSION['start']; ?> </body> </html>
דף בדיקה first.php
קוד PHP:
<! DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><!-- first.php --> <head> <title> first </title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <?php echo $_SESSION['start']; ?> <p>link to main page, <a href="main.php">click here</a></p>
</body> </html>
|