שאלה בקוד PHP

gunfor

New member
שאלה בקוד PHP

function checkuser($user ,$pass) { $this->condb(); if ($this->condb()!=true) { foreach ($this->auth as $data) { if ($user == $data['user'] && $pass == $data['pass']) { session_register('passed'); session_register('how'); $_SESSION['how'] = $user; $_SESSION['passed'] = 'true'; header("Location: HTTP://" .$_SERVER['HTTP_HOST'] .$_SERVER['PHP_SELF'] ."?loc=main"); } else { $this->msg = "PassWord/User are not correct"; } } } }​
למה השאן של הפונקציה גם כל התאנים מתקיימים (בדוק) לא נרשמים או משהוא כאזה בבקשה זה דחוף לי אם תוכלו רק להסביר לי למה אני מודע לכם מאוד
 

אמיר ט

New member
---->

הבנת טיפה לא נכון איך עובדת הפונקציה Session_register ... הפונקציה מקבלת כפרמטר את שם המשתנה שאתה רוצה לשמור את תוכנו כלומר אם אתה רוצה להשתמש ב session_register('how')1 אז אתה צריך שמשתנה how$ יהיה מוגדר... ואז תוכנו ישמר בגלובלס. ולכן הקוד הנכון יהיה :
function checkuser($user ,$pass) { $this->condb(); if ($this->condb()!=true) { foreach ($this->auth as $data) { if ($user == $data['user'] && $pass == $data['pass']) { $how = $user; $passed = 'true'; session_register('passed'); session_register('how'); header("Location: HTTP://" .$_SERVER['HTTP_HOST'] .$_SERVER['PHP_SELF'] ."?loc=main"); } else { $this->msg = "PassWord/User are not correct"; } } } }​
 

gunfor

New member
אז יש לי שאלה נוספת

אם כבר הוגדר השאן אז מה הבעיה פה הקוד שבודק שאתה מחובר
function is_login() { if (!$_SESSION||$_SESSION['passed']=='true'||$_SESSION['how']=='') { header("Location: HTTP://" .$_SERVER['HTTP_HOST'] .$_SERVER['PHP_SELF'] ."?loc=login"); } }​
 

kensaggy

New member
מממ....

הרצת session_start()? ניחוש פרוע אבל יכול להיות ששכחת את זה או שזה פשוט לא משפיע בתוך הפונקציות ואז צריך להריץ את זה בתוך הפונקציה... בהצלחה, חן.
 

gunfor

New member
אבל..

אבל למה הפקודה הזאת אינה כותבת על שאן אלה רק בודקת אם היה כתיבה על שאן קיים אם בכלל למשתמש יש שאן מוגדר
 
למעלה