טעות שלי, פשוט התבלבלתי קצת וכנראה ששכחתי שהנתונים
שיש במסד מוצפנים (הסיסמא לצורך העניין) כמו שהם מוצפנים בעוגיה
ואפשר להשוות בינהם ..
בכל מקרה תודה,
יש לי עוד שאלה קצת אחרת.
יש לי את הקוד הבא (לבדוק אם קיים משתמש, אם כן להציג שגיאה)
PHP קוד:
function check_username($check_username) {
$query = mysql_query("SELECT username FROM admins");
while ($result = mysql_fetch_assoc($query)) {
$r_check_username = strtolower($result['username']);
if ($check_username == $r_check_username) {
return true;
} else {
return false;
}
}
}
if (check_username($check_username) == true) {
echo "שם המשתמש שבחרת תפוס";
}
הבעיה היא, שהוא עובד רק על המשתמש הראשון במסד, הוא לא עובר על שאר המשתמשים..
גם במידה ויהיו הרבה משתמשים, השאילתה הזו תיקח הרבה משאבים, אבל אין לי רעיון טוב יותר כרגע,
מכיוון שאם אני עושה דבר כזה:
PHP קוד:
$query = mysql_query("SELECT id FROM admins WHERE username = '$username'");
$num_rows = mysql_num_rows($query);
if ($num_rows >= 1) {
echo "קיים משתמש";
}
זה יעבוד רק אם המשתמש שרשמו הוא אותו הדבר, לדוגמא
אם יש לי במסד משתמש Admin ומנסים להירשם עם Admin זה יעבוד.
אבל אם יש משתמש Admin ומנסים להרשם עם admin או aDmin
זה לא יעבוד, מספיק אות אחת שהיא לא אותו הדבר זה יאפשר למשתמש להירשם.
לכן, חוץ מהאופציות האלו שיש לי בראש כרגע,
הדבר היחיד שאני חושב עליו מלבד זה, זה לפתוח שדה חדש
שכל הכינויים ירשמו בו באותיות קטנות, ואיתו בעצם אני אעשה את ההשוואה,
השאלה אם אין איזה אופציה אחרת (צריך שהיא תהיה יעילה).