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

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

stel222 06-06-08 11:10

שלום יש לי בעיה במערכת שבניתי בבקשה עזקה PHP
 
שלום בניתי מערכת משתמשים בעמוד רישום עשיתי דבר כזה למשתנים
PHP קוד:

    $username mysql_escape_string($_POST['username']);
    
$email mysql_escape_string($_POST['email']);
    
$password mysql_escape_string($_POST['password']);
    
$password md5($password);
    
$password_confirm mysql_escape_string($_POST['password_confirm']);
    
$password_confirm md5($password_confirm); 

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

$username mysql_escape_string($_POST['username']);
$password mysql_escape_string($_POST['password']);
$password md5($password); 


DavidBD 06-06-08 11:18

נסה אולי לעשות לפני הMYSQL_ESCAPE_STRING את הMD5.

stel222 06-06-08 11:25

תודה אחי עובד@

Daniel 06-06-08 11:27

א. עושים למען אבטחה ותאימות מקסימאלית mysql_real_escape_string

ציטוט:

נכתב במקור על ידי DavidBD (פרסם 639607)
נסה אולי לעשות לפני הMYSQL_ESCAPE_STRING את הMD5.

באותה המידה זה בדיוק כמו לא לעשות mysql_real_escape_string, כי
PHP קוד:

md5($str) == mysql_real_escape_string($str

מכיוון ש-md5 מחזיר אותיות+מספרים.

stel222 06-06-08 11:30

לא הבנתי מה אתה מנסה להגיד כאן
דרך אגב עכשיו זה מחזיר את הססיסמה למסד ללא הצפנה למה זה קורה ולא מצפין בMD5?

Daniel 06-06-08 11:35

1. mysql_escape_string בעצם "מבריחה" תווים שיכולים "להפריע" בשאילתה. גרשיים, גרש, ועוד כמה.
אך, mysql_real_escape_string עושה זאת באופן יותר בטוח - בכך שהיא בודקת את המסד וכך זה הרבה יותר בטוח.

2. מכיוון שתווים אנגליים(a-z, A-Z) ומספרים(0-9) אינם צריכים להיות "מוברחים" - לעשות mysql_real_escape_string על md5, שמחזיר רק תווים אנגליים ומספרים, לעשות mysql_real_escape_string על טקסט שנעשה עליו md5 - זה בזבוז משאבים, ולא עוזר.

stel222 06-06-08 11:37

אז באיזו פונקציה להשתמש ?

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

Daniel 06-06-08 11:50

ציטוט:

נכתב במקור על ידי stel222 (פרסם 639619)
אז באיזו פונקציה להשתמש ?

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

1. mysql_real_escape_string

2. גם בעמוד ההתחברות, תצפין את הסיסמא עם md5.

stel222 06-06-08 11:53

אני מצפין גם בעמוד ההתחברות וזה לא נותן ואם אני מוציא את ההצפנות בהרשמה ובהתחברות עובד

מישהו יודע מה זה יכול להיות ?

Daniel 06-06-08 12:15

תוכל לתת את הקוד?

stel222 06-06-08 12:42

אני יביא את הקטע שעושה את הבעיה

זה ההתחברות

PHP קוד:

$password $_POST['password'];
$password md5($password);
$username mysql_real_escape_string($_POST['username']);

if (
$_POST['send'] == 'send')
{
    if (
$username == '')
    {
        echo 
'אנא הכנס שם משתמש';
    }

    if (
$password == '')
    {
        echo 
'אנא הכנס סיסמה';
    }
    
    else
    {

$link mysql_connect($server$db_user$db_pass) or die(mysql_error());  
mysql_select_db("$database",$link) or die(mysql_error());
        
        
$query mysql_query("SELECT id FROM users WHERE username = '" $username "'AND password = '" $password "'") or die(mysql_error());
        list(
$user_id) = mysql_fetch_row($query);
    }

    if(empty(
$user_id)) {
        echo 
'שם משתמש או סיסמה שגויים.'

דף הרשמה

המשתנים
PHP קוד:

    $password $_POST['password'];
    
$password md5($password);
    
$password_confirm $_POST['password_confirm'];
    
$password_confirm md5($password_confirm);
    
$username mysql_real_escape_string($_POST['username']);
    
$email mysql_real_escape_string($_POST['email']);
    
$date date("d/m/y/H:i:s");
    
$ip $_SERVER['REMOTE_ADDR'];
    
$level '1';
    
$errors ''

פקודה לSQL
PHP קוד:

      mysql_query("INSERT INTO users (username, password, email, date, ip, level) VALUES ('" $username "', '" $password "', '" $email "', '" $date "', '" $ip "', '" $level "')") or die(mysql_error()); 


Daniel 06-06-08 12:47

תיקנתי את הקוד
דף ההתחברות
PHP קוד:

$link mysql_connect($server$db_user$db_pass) or die(mysql_error());  
mysql_select_db("$database",$link) or die(mysql_error());
$password $_POST['password'];
$password md5($password);
$username mysql_real_escape_string($_POST['username']);

if (
$_POST['send'] == 'send')
{
    if (
$username == '')
    {
        echo 
'אנא הכנס שם משתמש';
    }

    if (
$password == '')
    {
        echo 
'אנא הכנס סיסמה';
    }
    
    else
    {


        
        
$query mysql_query("SELECT id FROM users WHERE username = '" $username "'AND password = '" $password "'") or die(mysql_error());
        list(
$user_id) = mysql_fetch_row($query);
    }

    if(empty(
$user_id)) {
        echo 
'שם משתמש או סיסמה שגויים.'

נסה עכשיו

stel222 06-06-08 12:51

הבאתי בכוונה חלק מהקוד כי אני לא יפרסם כאן את כל הקוד רק את החלק עם הביעה


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

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