View Single Post
ישן 08-06-10, 09:27   # 3
SniR-S
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Aug 2008
הודעות: 546

SniR-S לא מחובר  

טעות שלי, פשוט התבלבלתי קצת וכנראה ששכחתי שהנתונים
שיש במסד מוצפנים (הסיסמא לצורך העניין) כמו שהם מוצפנים בעוגיה
ואפשר להשוות בינהם ..
בכל מקרה תודה,
יש לי עוד שאלה קצת אחרת.

יש לי את הקוד הבא (לבדוק אם קיים משתמש, אם כן להציג שגיאה)
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
זה לא יעבוד, מספיק אות אחת שהיא לא אותו הדבר זה יאפשר למשתמש להירשם.

לכן, חוץ מהאופציות האלו שיש לי בראש כרגע,
הדבר היחיד שאני חושב עליו מלבד זה, זה לפתוח שדה חדש
שכל הכינויים ירשמו בו באותיות קטנות, ואיתו בעצם אני אעשה את ההשוואה,
השאלה אם אין איזה אופציה אחרת (צריך שהיא תהיה יעילה).
  Reply With Quote