Sessions and PHP

liron_m

New member
Sessions and PHP

שלום יש לי בעיה קטנה בקריאה של SESSIONS ב-PHP. אני מנסה ליצור סתם מונה פשוט שמשתמש ב-SESSION לראות כמה פעמים אותו משתמש רענן את הדף. הדוגמה לקוחה מ- www.php.net
<?php session_start(); // Use $HTTP_SESSION_VARS with PHP 4.0.6 or less if (!isset($_SESSION['count'])) { $_SESSION['count'] = 0; } else { $_SESSION['count']++; } ?>​
אבל משום מה זה לא ממש עובד. אני מצליח לראות שהעוגיה נשמרת גם על השרת וגם בדפדפן, אבל הערך בתוך העוגיה אינו מוחזר בחזרה לדפדפן. כאשר ה-session id מועבר דרך ה- URL זה עובד, אבל בלעדיו לא. אגב, אני משתמש ב- Apache 2 ו- PHP 4.3.5 ומותקנים על windows xp. אולי מישהו מכיר את הבעיה?? תודה, לירון
 

bzini

New member
מוזר

אצלי עם IIS על XP וגרסת 4.3.4 של PHP זה עובד בדיוק עם הקוד שלך (למעט הוספת:
echo $_SESSION["count"]​
להדפסת המשתנה. תבדוק את ההגדרות של ה Apache ושל ה php.ini תחת Sessions.
 

WebKiller

New member
בעיה מוכרת

זה הכל תלויי בהגדרת ה PHP בסשרת, כלומר האם הוא מוגדר להעברת ה SESSIONID רק בעזרת עוגיות או בעזרת URL, השיטה בטובה ביותר היא להשתמש בפונקציה הבאה לכל לינק
function url($url) { if(defined('SID') && (! isset($_COOKIE[session_name()]))) { $url.=(strpos($url, '?'))? '&':'?'; $url.= SID; } }​
 

liron_m

New member
עם ה-URL זה עובד

כמו שכבר ציינתי מקודם, כאשר ה- SESSION ID עובד דרך ה-URL, הכל עובד כמו שצריך. ואגב, אין ממש צורך בפונקציה, אלא להוסיף אופציה ב-PHP.INI את session.use_trans_sid להפוך ל-ON. אבל שוב, אני מעוניין להעביר את העוגייה לדף השני, ללא שינוי של ה-URL. תודה לירון
 
למעלה