שאלה על COOKIES

yair24

Member
שאלה על COOKIES

שלום, יש לי בעיה כבר מלא זמן ואני לא מבין למה זה לא עובד. אני מנסה לעשות דבר כזה: יש לי דף LOGIN שאם המשתמש מקיש שם וססמא נכונה זה רושם את הUSER שלו בCOOKIE ושולח לדף אחר. מה שקורה זה שזה עובר לדף אבל הCOOKIE לא נרשם. למה זה קורה? אפשר לפתור דבר כזה? אם אני מוריד את השורה של הנעברה לדף האחר אז הCOOKIE כן נרשם. יאיר
 

yair24

Member
הנה

<? $result = mysql_query("SELECT * FROM blabla",$mysql_link) ; $isAuth = false; //set to false originally while($row = mysql_fetch_array($result)) { $EncryptPass = crypt( $_POST['blapass'] , $row['Pass'] ); if($row['UserId'] === $_POST['username'] && $EncryptPass === $row['Pass']) //above row checks to see if username/password combination exists { $isAuth = true; setcookie ("username",$_POST['username'],time()+3600*24*365); } } if($isAuth) { header("Location: blabla.php?page=blabla"); } else //if login/pass does not exist { header("Location: blabla.php?page=login&err=1"); } ?>​
כמו שרואים אם המשתמש הכניס ססמא נכונה זה עושה SETCOOKIE ואחרי זה עושה REDIRECT . זה לא עובד אני לא מבין למה.
 

yair24

Member
קוד יותר יפה

<? $result = mysql_query("SELECT * FROM blabla",$mysql_link) ; $isAuth = false; //set to false originally while($row = mysql_fetch_array($result)) { $EncryptPass = crypt( $_POST['blapass'] , $row['Pass'] ); if($row['UserId'] === $_POST['username'] && $EncryptPass === $row['Pass']) { $isAuth = true; setcookie ("username",$_POST['username'],time()+3600*24*365); } } if($isAuth) { header("Location: blabla.php?page=blabla"); } else { header("Location: blabla.php?page=login&err=1"); } ?>​
 

bnayal

New member
אה אה!!!!

יש פה שגיאה שגם היתה לי באיזה קוד ממש אתמול!!! במקום ה
time()+3600*24*365​
תשים ככה:
$life = time()+3600*24*365;​
ואז בעוגייה במקום time()+3600*24*365 תכניס $life
 

yair24

Member
האמת אני לא מבין

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

N i X

New member
האמת, גם אני לא...

אולי זה איזה באג עם PHP? שני הדברים עובדים עם headers, ואולי לכן הבעיה? למרות שאני לא מבין מה הבעיה, במילא העוגיה נשלחת קודם...
 

yair24

Member
זה מה שאני גם חושב...

איזה בעסה... דרך אגב אם אני משתמש בSESSION במקום COOKIE זה עובד. יש לי הרגשה שזה באמת באג השאלה היא איך לא עלו על באג כזה הרי לא יכול להיות שאני הראשון שמנסה לעשות דבר כזה.... יאיר
 

bnayal

New member
../images/Emo4.gif אצלי זה עשה בעיה לפחות, סליחה!

 

GPhoenixX

New member
יש לי הצעה מקורית :)

תנסה להעביר דף בעזרת js, זה לא משתמש בheaders ואולי זה יפתור את הבעיה : echo '<script>document.location.href="page.php";</script>';
 

yair24

Member
תודה, אבל

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