550
צפיות
צפיות
8
תשובות
תשובות
צריך עזרה בהתחברות לאתר…
בניתי כבר את דף ההתחברות ועשיתי ככה נגיד:
$sql=mysql_query("SELECT username,password FROM users WHERE username = '".$_POST['username']."');
if ( $row['password'] == $_POST['password'] )
{
echo "התחברת בהצלחה, לחץ <a href=index.php>כאן</a> על מנת לחזור לדף הראשי.";
}
else
{
echo "ההתחברות נכשלה, ייתכן שהסיסמא או שם המשתמש אינם נכונים";
}
וזה עובד טוב מאוד אם לא מכניסים טוב אז מציג שגיאה ואם כן מכניסים טוב זה לא מציג.
עכשיו רציתי לשאול איך עושים שאם הוא כן הצליח להתחבר, זה ייצור אצלו עוגיה (cookie) או session (יש הבדל?).
וכשנכנסים לעמוד הראשי זה יזהה אם המשתמש מחובר או לא.
תודה רבה
8 תשובות
פשוט מאוד
אני כותב את זה ב ASP כי אני לא יודע PHP אבל תתרגם את זה
אתה רושם לפני ההעברה לדף שהצליח את זה
<%session("logged")= username%>
ובדף עצמו אתה רושם
if session("Logged")<>"" then response.write("you are in")
ותוסיף את התוכן של הסיישן
המשתנה שאחרי הסיישן (USERNAME) זה בקוד שלך זה—>".$_POST['username']."
מקווה שעזרתי
נועם צברי
תשובה
צריך להיות משהו כזה:
$sql=mysql_query("SELECT username,password FROM users WHERE username = '".$_POST['username']."');
if ( $row['password'] == $_POST['password'] )
{
setcookie("login",$_POST['username'],time()+21900);
echo "התחברת בהצלחה, לחץ <a href=index.php>כאן</a> על מנת לחזור לדף הראשי.";
}
else
{
echo "ההתחברות נכשלה, ייתכן שהסיסמא או שם המשתמש אינם נכונים";
}
בעמוד שלך תכתוב משהו כזה:
echo "שלום ".$_COOKIE["login"]."!";
מה במקרה והעוגיה ריקה?
והוא אמר שאפשר גם סיישן אז רשמתי לו בסיישן
ולCODERED מה שבילד נתן לך נכון
חוץ ממה שצריך לרשום בדף אחרי ההתחברות
כי זה משאיר הרבה חורים
עדיף לבדוק אם היא ריקה אם כן לרשום אורח
אם לא לרשום את העוגיה (/סיישן)
זה עובד
אבל אני לא מצליח כל-כך לעשות שאם אין לו עוגיה אז יהיה רשום שלום אורח, זה מה שניסיתי:
if ( $_COOKIE['login'] == True )
{
echo "שלום ".$_COOKIE['login']."!";
}
else
{
echo "שלום אורח, נא הירשם.";
}
וזה פשוט רושם לי "שלום 1" 😀
תודה לשניכם.
תגובה
<?php
if (!isset($_COOKIE["login"]) && $_COOKIE['login'] == "" || null)
{
echo "שלום אורח, נא הירשם.";
echo "שלום ".$_COOKIE['login']."!";
}
else
{
echo "שלום ".$_COOKIE['login']."!";
}
?>
שיניתי קצת את הקוד, בהתחלת ה if אנחנו בודקים ב isset אם אין עוגיה, אם יש אז מעבירים ל else, אם יש בודקים אם היא שווה לכלום או לריק, במידה וכן אז מציגים הודעה "שלום אורח".
קודם כל תודה 😉
אבל אם אני לא מחובר זה מציג את השגיאה הבאה:
Notice: Undefined index: login in c:program fileseasyphp1-7wwwccuindex.php on line 8
שלום אורח, נא הירשם.
Notice: Undefined index: login in c:program fileseasyphp1-7wwwccuindex.php on line 11
שלום !
כשאני מחובר הכל טוב
תוכל להסביר לי יותר על ה-isset?
תודה רבה
אגב
easyphp זה פשוט חבילה שבאה עם ה-Apache,MySQL,phpMyAdmin וכו'… זה לא כמו פרונטפייג' רק של PHP
isset
בודק אם איזה שהוא נתון הגיעה מלבד null, כלומר כלום, 1,2,3,4….. א,ב,ג,ד…… לכל השאר.אתה יכול ליקרוא עליו ב php.net/isset.
בקשר לקוד, לא מצליח ליראות איזה שהיא בעייה, אני אבדוק את זה לעומק מחר.