הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בעיה עם התחברות למערכת שאני בונה (https://hosts.co.il/forums/showthread.php?t=72239)

SniR-S 24-02-09 18:58

בעיה עם התחברות למערכת שאני בונה
 
אוקי, כעיקרון אם השם משתמש והסיסמא מתאימים והם קיימים אז הוא מתחבר..
אבל אם השם משתמש או הסיסמא לא תואמים הוא מציג לי את 2 ההודעות הללו:
'השם משתמש שהוכנס לא נמצא במערכת.'
ומתחת 'הסיסמא שהוזנה שגויה.'

בעיקרון זה תקין, אבל אני רוצה שאם רק הסיסמא לא נכונה אז הוא יציג שגיאה רק על הסיסמא..
כנ"ל עם השם משתמש..
רק במצב ששניהם לא קיימים שיציג את שני ההודעות.

ולהלן הקוד:
PHP קוד:

if (isset($_POST['submit'])) {
if (
mysql_query("SELECT * FROM random_users WHERE user != '$user' ")) {
    echo 
"
<table align='center' cellpadding='2' cellspacing='1' class='t_register' style='margin-bottom: 1px;'>
    <tr><td class='tdrow_reg1' width='100%'>
<span style='color: red;font-weight: bold;font-size: 13px;'>השם משתמש שהוכנס לא נמצא במערכת.</span>
    </td>
    </tr>
</table>"
;
}
}

if (isset(
$_POST['submit'])) {
if (
mysql_query("SELECT * FROM random_users WHERE password != '$password' ")) {
    echo 
"
<table align='center' cellpadding='2' cellspacing='1' class='t_register'>
    <tr><td class='tdrow_reg1' width='100%'>
<span style='color: red;font-weight: bold;font-size: 13px;'>הסיסמא שהוזנה שגוייה.</span>
    </td>
    </tr>
</table>"
;
}



daMn 24-02-09 19:03

mysql_query לא מחזיר TRUE במידה והוא מצא שורות במסד, הוא מחזיר resources, תשתמש בmysql_num_rows לאחר הquery ותבדוק אם יש שורה אחת במסד לפי השאילתא.
בכ"מ אני לא מבין למה אתה מנסה לסבך, הכי טוב לבדוק בפעם אחת ולהציג "שם משתמש או סיסמא לא נכונים", אבל אם אתה בכל זאת רוצה, קודם תתחיל בIF של השם משתמש,
במידה וקיים משתמש כזה תמשיך לIF שנמצא בתוך הIF הנ"ל שבודק אם הסיסמא קיימת יחד עם שם המשתמש, אם נמצא שורה אחת במסד קיים משתמש לפי הפרטים,
אם הIF הראשון נתן FALSE לא קיים משתמש כזה במסד, ואם הIF השני נתן FALSE הסיסמא לא נכונה למשתמש זה.

בהצלחה.

SniR-S 24-02-09 19:13

מה יעזור לי לספור את כל השורות ?
זה אותו עיקרון, בתנאים שלי הוא גם בודק אם קיימים במסד השם משתמש והסיסמא שהוזנו בטופס ..
או שלא הבנתי אותך נכון? \-:

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

fulsyp 24-02-09 19:16

PHP קוד:

if (isset($_POST['submit'])) {
$checker mysql_fetch_array(mysql_query("SELECT `someField` FROM random_users WHERE user != '$user'"));
if (!isset(
$checker['someField']) || $checker['someField'] == "") {
    echo 
"
<table align='center' cellpadding='2' cellspacing='1' class='t_register' style='margin-bottom: 1px;'>
    <tr><td class='tdrow_reg1' width='100%'>
<span style='color: red;font-weight: bold;font-size: 13px;'>השם משתמש שהוכנס לא נמצא במערכת.</span>
    </td>
    </tr>
</table>"
;
}else{
$checker mysql_fetch_array(mysql_query("SELECT `someField` FROM random_users WHERE password != '$password' && user='$user'"));
if (!isset(
$checker['someField']) || $checker['someField'] == "") {
    echo 
"
<table align='center' cellpadding='2' cellspacing='1' class='t_register'>
    <tr><td class='tdrow_reg1' width='100%'>
<span style='color: red;font-weight: bold;font-size: 13px;'>הסיסמא שהוזנה שגוייה.</span>
    </td>
    </tr>
</table>"
;
}
}


תשנה את someField למספר המשתמש או לכל שדה בטבלה שלא password או user

SniR-S 24-02-09 19:20

ציטוט:

נכתב במקור על ידי fulsyp (פרסם 699912)
PHP קוד:

if (isset($_POST['submit'])) {
$checker mysql_fetch_array(mysql_query("SELECT `someField` FROM random_users WHERE user != '$user'"));
if (isset(
$checker['someField']) && $checker['someField'] != "") {
    echo 
"
<table align='center' cellpadding='2' cellspacing='1' class='t_register' style='margin-bottom: 1px;'>
    <tr><td class='tdrow_reg1' width='100%'>
<span style='color: red;font-weight: bold;font-size: 13px;'>השם משתמש שהוכנס לא נמצא במערכת.</span>
    </td>
    </tr>
</table>"
;
}
$checker mysql_fetch_array(mysql_query("SELECT `someField` FROM random_users WHERE password != '$password'"));
if (isset(
$checker['someField']) && $checker['someField'] != "") {
    echo 
"
<table align='center' cellpadding='2' cellspacing='1' class='t_register'>
    <tr><td class='tdrow_reg1' width='100%'>
<span style='color: red;font-weight: bold;font-size: 13px;'>הסיסמא שהוזנה שגוייה.</span>
    </td>
    </tr>
</table>"
;
}


תשנה את someField למספר המשתמש או לכל שדה בטבלה שלא password או user

לא הבנתי, מה עשית פה בעצם?

fulsyp 24-02-09 19:22

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

daMn 24-02-09 19:48

בדר"כ אני לא נותן קודים ככה, אבל בגלל שסתם בא לי וגם אין לי מושג מה fulsyp עשה בבקשה:
PHP קוד:

if (isset($_POST['submit'])) {
    
$query mysql_query("SELECT * FROM random_users WHERE user = '$user'");
    
$num_rows mysql_num_rows($query);
    if (
$num_rows === 1) {
        
$query mysql_query("SELECT * FROM random_users WHERE user = '$user' AND password = '$password'");
        
$num_rows mysql_num_rows($query);
        if (
$num_rows === 1) {
            echo 
"משתמש קיים במערכת";
        }
        else {
            echo 
"סיסמא לא נכונה";
        }
    }
    else {
        echo 
"שם משתמש לא קיים";
    }



fulsyp 24-02-09 20:35

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

daMn 24-02-09 20:36

ציטוט:

נכתב במקור על ידי fulsyp (פרסם 699920)
מה שעשית זה בדיוק כמוני רק שלא מדפיס מה שהוא רצה...

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

fulsyp 24-02-09 20:37

מה שהוא עושה...לא מבחינת איך שהוא נראה


כל הזמנים הם GMT +2. הזמן כעת הוא 01:46.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ