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

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 17-06-09, 00:12   # 1
Jonathan Zeierman
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jun 2007
הודעות: 1,003

Jonathan Zeierman לא מחובר  

בעיה ב-md5

שלום לכולם.
אני מנסה לעשות התחברות עם סיסמא מוצפנת ב-md5.
אך משום מה הקוד בעיקרון לא עובד אין שגיאות אין כלום רק כשאני עושה התחבר הוא מרענן לי את דף ההתחברות.
מה הבעיה בקוד שלי?
PHP קוד:
    if (isset($_POST["send"]))
   {
      
//////////////////////////////////////////////////////////////////
      // If user & pass are right, create session and login. ///////////
      //////////////////////////////////////////////////////////////////
         
$query "SELECT * FROM users WHERE user = '{$user}' AND password =  '{$pass}'";
         
$result mysql_query($query)
         or die(
"SQL Getting The Next Error:" mysql_error());
         
         
$user $_POST["user"];
         
$pass md5($_POST["pass"]);
         
         while (
$row mysql_fetch_assoc($result))
         {
         
            if (
$row["user"] == $user && $row["password"] == $pass)
            {
               
               
$_SESSION["user"] = $user;
               
$_SESSION["pass"] = $pass;
               
header("Location: manage.php?act=Admin");
            }
         
               
///////////////////////////////////////////////////////////////////
               // If user & pass worng, show us an erroe msseage.  ///////////////
               ///////////////////////////////////////////////////////////////////
               
if ($row["user"] != $user && $row["password"] != $pass)
               {
                  echo 
'<html dir="rtl">
                  <head>
                  <link rel="stylesheet" type="text/css" href="includes/css/style.css" media="screen"/>
                  <meta http-equiv="Content-Language" content="he">
                  <meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
                  <title>שגיאה</title>
                  </head>
                  <body>
                  <center>
                     <div class="error" style="width:350px" align="right">
                  <table cellpadding="6" cellspacing="2" width="100%">
                  <tr>
                  <td>
                  <img src="images/error.gif" /> <b>שגיאה:</b> שם משתמש ו/או סיסמה שגויים.</td>
                  </tr>
                  </table>
                  </div><div class="space"></div>
                  </center>
                  </body>
                  </html>'
;
               }
         }
    }
//////////////////////////////////////////////////////////////////
?> 
המסד נתונים שלי נראה ככה:
http://www.mup.co.il/img.php?f=84a14aa975ed.jpg
הסיסמא היא 2 אם תלכו ל- hashfinder תגלו שהסיסמא היא 2.
תודה לעוזרים.
__________________
יונתן.
אימייל: jonathan@zeierman.net
  Reply With Quote
ישן 17-06-09, 00:39   # 2
אדיר
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Mar 2008
מיקום: אשקלון
הודעות: 1,714

אדיר לא מחובר  

הקוד שלך ממש לא תקין ולא יעיל..

ב- SELECT עדיף שתעשה count('id') ואז פשוט תבדוק אם הוא שווה ל- 1.

יחסוך את כל התנאים ואת כל הלולאות החסרי שימוש האלה.
רק שים לב שפעם הבאה תגדיר את המשתנה לפני שאתה משתמש בו (שים לב איפה הגדרת את user ואת pass).
  Reply With Quote
ישן 17-06-09, 02:02   # 3
Slash
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 34
הודעות: 522

Slash לא מחובר  

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

נראה כמו הרבה חתיכות קוד שהועתקו והודבקו באופן שרירותי .
__________________
Aziza Web Magazine

Always account for variable change
  Reply With Quote
ישן 17-06-09, 13:48   # 4
Jonathan Zeierman
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jun 2007
הודעות: 1,003

Jonathan Zeierman לא מחובר  

טעות שלי לא שמתי לב.
אבל עדיין לא עובד.
PHP קוד:
    if (isset($_POST["send"]))
    {
        
//////////////////////////////////////////////////////////////////
        // If user & pass are right, create session and login. ///////////
        //////////////////////////////////////////////////////////////////
            
$user $_POST["user"];
            
$pass md5($_POST["pass"]);
            
            
//$query = "SELECT * FROM users WHERE user = '{$user}' AND password = '{$pass}'";
            
$query "SELECT * FROM users";
            
$result mysql_query($query)
            or die(
"SQL Getting The Next Error:" mysql_error());
            
            while (
$row mysql_fetch_assoc($result))
            {
            
                if (
$row["user"] == $user && $row["password"] == $pass)
                {
                    
                    
$_SESSION["user"] = $user;
                    
$_SESSION["pass"] = $pass;
                    
header("Location: manage.php?act=Admin");
                }
            
                    
///////////////////////////////////////////////////////////////////
                    // If user & pass worng, show us an erroe msseage.  ///////////////
                    ///////////////////////////////////////////////////////////////////
                    
if ($row["user"] != $user && $row["password"] != $pass)
                    {
                        echo 
'<html dir="rtl">
                        <head>
                        <link rel="stylesheet" type="text/css" href="includes/css/style.css" media="screen"/>
                        <meta http-equiv="Content-Language" content="he">
                        <meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
                        <title>שגיאה</title>
                        </head>
                        <body>
                        <center>
                        <div class="error" style="width:350px" align="right">
                        <table cellpadding="6" cellspacing="2" width="100%">
                        <tr>
                        <td>
                        <img src="images/error.gif" /> <b>שגיאה:</b> שם משתמש ו/או סיסמה שגויים.</td>
                        </tr>
                        </table>
                        </div><div class="space"></div>
                        </center>
                        </body>
                        </html>'
;
                    }
            }
    } 
__________________
יונתן.
אימייל: jonathan@zeierman.net
  Reply With Quote
ישן 17-06-09, 14:13   # 5
OrPol
א.פורום תוכנה
עסק רשום
 
OrPol's Avatar
 
מיני פרופיל
תאריך הצטרפות: Aug 2006
הודעות: 1,979

OrPol לא מחובר  

אתה צריך להגדיר את המשנים, ואז לעשות את הQuery
כמו שהיא למעלה, אבל התנאי שלך צריך להיות
PHP קוד:
if(mysql_fetch_rows($query) > 0
  Reply With Quote
ישן 17-06-09, 14:19   # 6
Jonathan Zeierman
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jun 2007
הודעות: 1,003

Jonathan Zeierman לא מחובר  

אתה מתכוון למשהו כזה?
PHP קוד:
    if (isset($_POST["send"])) 
    { 
        
////////////////////////////////////////////////////////////////// 
        // If user & pass are right, create session and login. /////////// 
        ////////////////////////////////////////////////////////////////// 
            
$user $_POST["user"]; 
            
$pass md5($_POST["pass"]); 
             
            
$query "SELECT * FROM users WHERE user = '{$user}' AND password = '{$pass}'"
            
$result mysql_query($query
            or die(
"SQL Getting The Next Error:" mysql_error()); 
             
                if(
mysql_fetch_rows($query) > 0)
                {
                     
                    
$_SESSION["user"] = $user
                    
$_SESSION["pass"] = $pass
                    
header("Location: manage.php?act=Admin"); 
                } 
             
                    
/////////////////////////////////////////////////////////////////// 
                    // If user & pass worng, show us an erroe msseage.  /////////////// 
                    /////////////////////////////////////////////////////////////////// 
                    
if ($row["user"] != $user && $row["password"] != $pass
                    { 
                        echo 
'<html dir="rtl"> 
                        <head> 
                        <link rel="stylesheet" type="text/css" href="includes/css/style.css" media="screen"/> 
                        <meta http-equiv="Content-Language" content="he"> 
                        <meta http-equiv="Content-Type" content="text/html; charset=windows-1255"> 
                        <title>שגיאה</title> 
                        </head> 
                        <body> 
                        <center> 
                        <div class="error" style="width:350px" align="right"> 
                        <table cellpadding="6" cellspacing="2" width="100%"> 
                        <tr> 
                        <td> 
                        <img src="images/error.gif" /> <b>שגיאה:</b> שם משתמש ו/או סיסמה שגויים.</td> 
                        </tr> 
                        </table> 
                        </div><div class="space"></div> 
                        </center> 
                        </body> 
                        </html>'

                    }
    } 
__________________
יונתן.
אימייל: jonathan@zeierman.net
  Reply With Quote
ישן 18-06-09, 14:18   # 7
Jonathan Zeierman
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jun 2007
הודעות: 1,003

Jonathan Zeierman לא מחובר  

מצטער, לא יכול לערוך.
ניסתי משהו כזה:
PHP קוד:
    if (isset($_POST["send"]))  
    {  
        
//////////////////////////////////////////////////////////////////  
        // If user & pass are right, create session and login. ///////////  
        //////////////////////////////////////////////////////////////////  
            
$user $_POST["user"];  
            
$pass md5($_POST["pass"]);  
              
            
$query "SELECT * FROM users WHERE user = '{$user}' AND password = '{$pass}'";  
            
$result mysql_query($query)  
            or die(
"SQL Getting The Next Error:" mysql_error());  
              
                if(
mysql_fetch_rows($query) > 0
                { 
                      
                    
$_SESSION["user"] = $user;  
                    
$_SESSION["pass"] = $pass;  
                    
header("Location: manage.php?act=Admin");  
                }  
              
                    
///////////////////////////////////////////////////////////////////  
                    // If user & pass worng, show us an erroe msseage.  ///////////////  
                    ///////////////////////////////////////////////////////////////////  
                   
else  
                    {  
                        echo 
'<html dir="rtl">  
                        <head>  
                        <link rel="stylesheet" type="text/css" href="includes/css/style.css" media="screen"/>  
                        <meta http-equiv="Content-Language" content="he">  
                        <meta http-equiv="Content-Type" content="text/html; charset=windows-1255">  
                        <title>שגיאה</title>  
                        </head>  
                        <body>  
                        <center>  
                        <div class="error" style="width:350px" align="right">  
                        <table cellpadding="6" cellspacing="2" width="100%">  
                        <tr>  
                        <td>  
                        <img src="images/error.gif" /> <b>שגיאה:</b> שם משתמש ו/או סיסמה שגויים.</td>  
                        </tr>  
                        </table>  
                        </div><div class="space"></div>  
                        </center>  
                        </body>  
                        </html>'
;  
                    } 
    } 
אבל עדיין לא עובד ולא מחזיר שום שגיאה.
__________________
יונתן.
אימייל: jonathan@zeierman.net
  Reply With Quote
ישן 19-06-09, 12:46   # 8
mayden
Авторитет
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
הודעות: 2,556

mayden לא מחובר  

תיקנתי לך ועשיתי לך קצת שיפורים בקוד:
PHP קוד:
    if (isset($_POST["send"])) 
   { 
      
////////////////////////////////////////////////////////////////// 
      // If user & pass are right, create session and login. /////////// 
      //////////////////////////////////////////////////////////////////
 
         
$user $_POST["user"]; 
         
$pass md5($_POST["pass"]); 
         
$query "SELECT `id` FROM `users` WHERE `user` = {$user} AND `password` =  {$pass}"
         
$result mysql_query($query
         or die(
"SQL Getting The Next Error:" mysql_error()); 
          
 if(
mysql_num_rows($result) > 0)
  {
   
$_SESSION["user"] = $user
                
$_SESSION["pass"] = $pass
               
header("Location: manage.php?act=Admin"); 
  }
 else {
   
// error of connecting
  
}
         
               
         
    } 
// end of if(isset)
////////////////////////////////////////////////////////////////// 
?> 
כמה דברים:
- אתה בודק בMYSQL אם קיים כזה USER וסיסמא שתואמים. אם קיים -> יופי הכל טוב אתה מתחבר. אם לא-> שגיאה, כלומר משהו לא עובד.

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

ציטוט:
" זוכרים בשביל ללמוד, יודעים בשביל ללמד, מבינים בשביל לתכנת.."
  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. הזמן כעת הוא 13:31.

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