שלח תשובה

זירת השאלות

572
צפיות
8
תשובות

צריך עזרה בהתחברות לאתר…

,‏ 4 באוקטובר, 2004

בניתי כבר את דף ההתחברות ועשיתי ככה נגיד:


$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 תשובות

  1. MasterMind הגיב:

    פשוט מאוד
    אני כותב את זה ב ASP כי אני לא יודע PHP  אבל תתרגם את זה
    אתה רושם לפני ההעברה לדף שהצליח את זה


    <%session("logged")= username%>
    ובדף עצמו אתה רושם
    if session("Logged")<>"" then response.write("you are in")
    ותוסיף את התוכן של הסיישן

    המשתנה שאחרי הסיישן (USERNAME) זה בקוד שלך  זה—>".$_POST['username']."
    מקווה שעזרתי  
    נועם צברי

  2. BuildHome הגיב:

    תשובה
    צריך להיות משהו כזה:
    $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"]."!";

  3. MasterMind הגיב:

    מה במקרה והעוגיה ריקה?
    והוא אמר שאפשר גם סיישן אז רשמתי לו בסיישן
    ולCODERED מה שבילד נתן לך נכון
    חוץ ממה שצריך לרשום בדף אחרי ההתחברות
    כי זה משאיר הרבה חורים
    עדיף לבדוק אם היא ריקה  אם כן לרשום  אורח
    אם לא  לרשום את העוגיה (/סיישן)

  4. CodeRed הגיב:

    זה עובד
    אבל אני לא מצליח כל-כך לעשות שאם אין לו עוגיה אז יהיה רשום שלום אורח, זה מה שניסיתי:


    if ( $_COOKIE['login'] == True )
    {
    echo "שלום ".$_COOKIE['login']."!";
    }
    else
    {
    echo "שלום אורח, נא הירשם.";
    }

    וזה פשוט רושם לי "שלום 1" 😀
    תודה לשניכם.

  5. jonatan44 הגיב:

    תגובה
    <?php
    if (!isset($_COOKIE["login"]) && $_COOKIE['login'] == "" || null)
    {
    echo "שלום אורח, נא הירשם.";
    echo "שלום ".$_COOKIE['login']."!";
    }
    else
    {
    echo "שלום ".$_COOKIE['login']."!";
    }
    ?>
    שיניתי קצת את הקוד, בהתחלת ה if אנחנו בודקים ב isset אם אין עוגיה, אם יש אז מעבירים ל else, אם יש בודקים אם היא שווה לכלום או לריק, במידה וכן אז מציגים הודעה "שלום אורח".

  6. CodeRed הגיב:

    קודם כל תודה 😉
    אבל אם אני לא מחובר זה מציג את השגיאה הבאה:


    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?
    תודה רבה

  7. CodeRed הגיב:

    אגב
    easyphp זה פשוט חבילה שבאה עם ה-Apache,MySQL,phpMyAdmin וכו'… זה לא כמו פרונטפייג' רק של PHP

  8. jonatan44 הגיב:

    isset
    בודק אם איזה שהוא נתון הגיעה מלבד null, כלומר כלום, 1,2,3,4….. א,ב,ג,ד…… לכל השאר.אתה יכול ליקרוא עליו ב php.net/isset.
    בקשר לקוד, לא מצליח ליראות איזה שהיא בעייה, אני אבדוק את זה לעומק מחר.

שלח תשובה