הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

 
 
כלים לאשכול תצורת הצגה
Prev הודעה קודמת   הודעה הבאה Next
ישן 20-03-10, 08:42   # 4
Daniel
אחראי פורום
 
מיני פרופיל
תאריך הצטרפות: Mar 2007
הודעות: 2,875

Daniel לא מחובר  

הבעייה פשוטה מאוד.
תסתכל על הקוד שלך - הוספתי רווחים כדי שיהיה יותר מסודר:
PHP קוד:
if (isset($_POST['submit'])) {
    
mysql_connect("localhost""root""");
    
mysql_select_db("phpmyadmin");
    
$user_name mysql_real_escape_string(htmlspecialchars($_POST['user_name']));
    
$password mysql_real_escape_string(htmlspecialchars(md5($_POST['password'])));
    
$query mysql_query("SELECT * FROM users WHERE user_name='$user_name'");
    
$row mysql_fetch_array($query);
    
$row_password $row['password'];
    
$row_user_name $row['user_name'];
    
$password_cookie $row['password'];
    
$user_name_cookie $row['user_name'];
    if (
$row_password == $password && $row_user_name == $user_name) {
        
setcookie("username"$user_nametime() + 60000);
        
setcookie("id"$id_cookietime() + 60000);
        
header("location: index.php");
        exit;
    } else {
        echo 
"Login Fail";
    }

נסה "להריץ את זה בראש" כשלא שולחים כלום, ותראה מה יקרה (ז"א isset($_POST['submit'] = FALSE)


אגב, יש לך עוד כמה בעיות והרגלים לא נכונים בקוד...
בשורה 6,
PHP קוד:
]));
$password mysql_real_escape_string(htmlspecialchars(md5($_POST['password']))); 
למה htmlspecialchars או mysql_real_escape_string? md5 תמיד מחזירה string בעל 32 תווים מהבסיס ההקסדימאלי (0-9, a-f), ולכן לא צריך לעשות שום "סינון" לזה.

בשורה 7,
PHP קוד:
])));
$query mysql_query("SELECT * FROM users WHERE user_name='$user_name'"); 
למה לשלוף את הכל? שלוף תמיד רק את מה שאתה צריך. ובנוסף - זאת התחברות. אתה אמור לעשות משהו בסגנון של
PHP קוד:
])));
$query mysql_query("SELECT * FROM users WHERE user_name='$user_name' AND password='$password'"); 

ואז כמובן שורה 8 מיותרת.


בשורה 9, אתה קורא למשתנה שכבר ידוע לך - השתמשת בו בשאילתה.
בקיצור כל החלק הזה:
PHP קוד:
$row_password=$row['password'];
$row_user_name=$row['user_name'];
$password_cookie=$row['password'];
$user_name_cookie=$row['user_name']; 
דיי מיותר.

את ה-if כמובן צריך להוריד כי אתה כבר בודק את זה בשאילתה.

ו-$user_name ו-$id_cookie לא מוגדרים.



זה על רגל אחת.
  Reply With Quote
 

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


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

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