עבור לתוכן

טופס התחברות ב PHP

Featured Replies

פורסם

היי

אשמח לקבל קצת עזרה, אני בשלבי התלמדות ב PHP .....

בניתי טופס התחברות ל ADMIN

הפונקצית התחברות נראית ככה


function login()
{
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$check = mysql_query("SELECT * FROM `users` WHERE `username`='{$username}' AND `password`='{$password}' ");

$r = mysql_num_rows($check);
if($r>0)
{
echo "OK";
}
else
{
echo "NOT OK";
}
}

הבעיה היא שברגע שאני נכנס לעמוד התחברות זה רושם לי כבר מההתחלה, מעל הטופס: NOT OK.

אם אני רושם פרטים נכונים ומזדהה כ ADMIN הוא רושם לי OK ונעלם ה NOT OK.

למישהו יש רעיון למה הוא רושם לי מההתחלה NOT OK?

תודה

פורסם

יש לך המון גרשיים מיותרים בתוך השאילתא. אתה לא צריך שום גרשיים חוץ מסביב ה-username$ ו-password$.

פורסם

הפונקציה פשוט מאמתת את הפרטים של ההתחברות ואם הם נכונים היא מציגה OK ואם לא היא מציגה NOT OK .

אם אתה רוצה שהפונקציה לא תוציא פלט לפני שאתה שולח את הטופס אתה צריך לבדוק אם נשלח טופס.


function login()
{
if(!isset($_POST)) return;
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$check = mysql_query("SELECT * FROM `users` WHERE `username`='{$username}' AND `password`='{$password}' ");

$r = mysql_num_rows($check);
if($r>0)
{
echo "OK";
}
else
{
echo "NOT OK";
}
}


פורסם
  • מחבר

אוקי תודה רבה!

דרך אגב אני רוצה לעשות במקום שירשום OK , שיעשה הפניה לעמוד של המנהלים... אז עשיתי

header('Location: http://www.example.com/');

ויש לי שגיאה.

מה יכולה להיות הבעיה?

Warning: Cannot modify header information - headers already

פורסם

אם אתה מבצע הפניה כזו אסור שיהיה שום פלט לפני כן לדפדפן...

אפילו רווח לבן.

יש גם מקרים בהם אם אתה משתמש בקידוד UTF8 מתווספת לך אוטומטית תוספת שנקראת BOM ניתן לבטל אותה אם אתה משתמש בתוכנה

notepad++ שד"א אני ממליץ עליה בחום זה יעזור לך מאוד.

פורסם
  • מחבר

תודה שי.

פורסם

בכיף..העונג כולו שלך ;)

תרגיש חופשי לשאול שאלות אם יהיו לך.

פורסם
  • מחבר

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

שאני שולף טקסט מהמסד ומציג באתר הוא מוסיף לי לפני כל " או ' , סלאש (\)

הבנתי שיש פונקציה של slashes ולא הבנתי כ"כ איך להשתמש בה.

ועוד שאלה קטנה, איך אני יכול למנוע הזרקות SQL וגם למנוע הכנסה של תגיות HTML?

תודה

טל

פורסם

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

ולגבי מניעת HTML

http://il.php.net/htmlspecialchars

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים