הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   סיישנים לא עובדים לי (https://hosts.co.il/forums/showthread.php?t=108473)

MasterNetwork 22-02-15 11:45

סיישנים לא עובדים לי
 
מסיבה כלשהיא הסיישן לא נשמר לי, בעמודים אחרים שעשיתי לפני מס' חודשים זה עובד יפה מאוד.
ועכשיו אני עובד על משהו חדש וזה לא עובד לי, בעמוד הראשי יש session_start ואלו דפים שמנותבים ע"י require בפנים.

עמוד 1:
PHP קוד:

<?php
$sql 
"SELECT * FROM `store_product`";
$result mysql_query($sql) or die(mysql_error());
while (
$row mysql_fetch_assoc($result)) {
    
$id $row['id'];
    
$name $row['name'];
    
$picture $row['picture'];
    
$price $row['price'];
    
$description=$row['description'];
    
$quantity=$row['quantity'];
if (
$_SESSION[$id]>0){ echo "{$name}<br/>"; }
}
?>

עמוד 2 שמקבל פוסט שמוסיפים מוצר חדש לעגלה:
PHP קוד:

<?php
$quantity
=$_POST["quantity"];
$id=$_GET["id"];
if (!isset(
$_SESSION[$id])){$_SESSION[$id]=0;}
$_SESSION[$id]=$_SESSION[$id]+$quantity;
echo 
'התווספו '.$quantity.' מוצרים לעגלה!';
?>


NesheR16 22-02-15 12:51

ציטוט:

נכתב במקור על ידי MasterNetwork (פרסם 894471)
מסיבה כלשהיא הסיישן לא נשמר לי, בעמודים אחרים שעשיתי לפני מס' חודשים זה עובד יפה מאוד.
ועכשיו אני עובד על משהו חדש וזה לא עובד לי, בעמוד הראשי יש session_start ואלו דפים שמנותבים ע"י require בפנים.

עמוד 1:
PHP קוד:

<?php
$sql 
"SELECT * FROM `store_product`";
$result mysql_query($sql) or die(mysql_error());
while (
$row mysql_fetch_assoc($result)) {
    
$id $row['id'];
    
$name $row['name'];
    
$picture $row['picture'];
    
$price $row['price'];
    
$description=$row['description'];
    
$quantity=$row['quantity'];
if (
$_SESSION[$id]>0){ echo "{$name}<br/>"; }
}
?>

עמוד 2 שמקבל פוסט שמוסיפים מוצר חדש לעגלה:
PHP קוד:

<?php
$quantity
=$_POST["quantity"];
$id=$_GET["id"];
if (!isset(
$_SESSION[$id])){$_SESSION[$id]=0;}
$_SESSION[$id]=$_SESSION[$id]+$quantity;
echo 
'התווספו '.$quantity.' מוצרים לעגלה!';
?>




מתי התכוונת להוסיף את החיבור למסד נתונים?
PHP קוד:

$result mysql_query($db$sql); 


MasterNetwork 22-02-15 13:13

אין קשר לבסיס נתונים, הסיישן לא נשמר לי.

xoox 22-02-15 14:14

ציטוט:

נכתב במקור על ידי MasterNetwork (פרסם 894471)
מסיבה כלשהיא הסיישן לא נשמר לי, בעמודים אחרים שעשיתי לפני מס' חודשים זה עובד יפה מאוד.
ועכשיו אני עובד על משהו חדש וזה לא עובד לי, בעמוד הראשי יש session_start ואלו דפים שמנותבים ע"י require בפנים.

עמוד 1:
PHP קוד:

<?php
$sql 
"SELECT * FROM `store_product`";
$result mysql_query($sql) or die(mysql_error());
while (
$row mysql_fetch_assoc($result)) {
    
$id $row['id'];
    
$name $row['name'];
    
$picture $row['picture'];
    
$price $row['price'];
    
$description=$row['description'];
    
$quantity=$row['quantity'];
if (
$_SESSION[$id]>0){ echo "{$name}<br/>"; }
}
?>

עמוד 2 שמקבל פוסט שמוסיפים מוצר חדש לעגלה:
PHP קוד:

<?php
$quantity
=$_POST["quantity"];
$id=$_GET["id"];
if (!isset(
$_SESSION[$id])){$_SESSION[$id]=0;}
$_SESSION[$id]=$_SESSION[$id]+$quantity;
echo 
'התווספו '.$quantity.' מוצרים לעגלה!';
?>


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

$id=$_GET["id"];
יכול להיות שיש בעייה בטופס? אתה יכול לרשום את הקוד של הטופס בקצרה בכדי להבין מאיפה הבעייה?

MasterNetwork 22-02-15 14:56

יש id, לדוגמא אתה נמצא בעמוד page.php?id=1
ושם זה מציג את המוצר בטופס post שמשאיר אותך באותו הid בכתובת ככה שזה לא הid .

BarSpecial 22-02-15 15:05

צור עמוד חדש, עם session_start וvar_dump למשתנה הגלובאלי $_SESSIONS
תראה מה הוא מכיל, אולי יש לך טעות כלשהי בקוד ואתה שומר את הנתון ב-key שונה או לא שומר כלל.

MasterNetwork 22-02-15 18:43

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


הבעיה נפתרה:
מסתבר ששם סיישן לא יכול להשמר רק בתור ערך מספרי, לכן
PHP קוד:

$_SESSION[$id

הפך ל:
PHP קוד:

$_SESSION["P_".$id



כל הזמנים הם GMT +2. הזמן כעת הוא 13:02.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ