UCP Arizona 2019, проблема с md5

Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
Пользователь
Регистрация
15 Авг 2024
Сообщения
45
Вкратце, мне нужно чтобы сайт принимал пароль который указывает человек при регистрации, вместо зашифрованного в бд, как это сделать?

PHP:
<?
    session_start();
    if($_POST['captcha'] == $_SESSION['rand_code'])
    {   
            $_SESSION['server'] = $_POST['server'];
            require_once('../core/connect.php');
            $password = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['password']))));
            // так не работает
            $password = md5($password);
            //
            $name = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['username']))));
            $key = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['code']))));
            
            $mysqli->set_charset("utf-8");
            $sql = "SELECT `Password`, `ID`, `Key` FROM `accounts` WHERE `NickName` = '{$name}'";
            $result = $mysqli->query($sql);
            //так тоже
            $password = md5($password);
            //
            if($result->num_rows == 1)
            {   
                $result->data_seek(0);
                $account = $result->fetch_assoc();
                $dbpassword = $account['Password'];
                $dbkey = $account['Key'];
                $id = $account['ID'];
                // и так тоже
                if(md5($password) == $dbpassword)
                //
                {           
                    if($dbkey > 0)
                    {
                        if($dbkey == $key)
                        {
                            $_SESSION['account_name'] = $name;
                            $_SESSION['account_id'] = $id;
                            $_SESSION['account_logged'] = 'try';
                            header("Location: /account");
                        }
                        else
                        {
                            $_SESSION['error'] = 3;               
                            header("Location: /login");
                        }
                    }
                    else
                    {
                        $_SESSION['account_name'] = $name;
                        $_SESSION['account_id'] = $id;
                        $_SESSION['account_logged'] = 'try';
                        header("Location: /account");
                    }
                    
                }
                else
                {
                    $_SESSION['error'] = 2;
                    header("Location: /login");
                }
            }
            else
            {
                $_SESSION['error'] = 1;
                   header("Location: /login");
            }
            $result->close();
            $mysqli->close();
    }
    else
    {
        $_SESSION['error'] = 4;
           header("Location: /login");
    }
?>

Сайт слитый, помогите кто нибудь пожалуйста
 
𝚖𝚘𝚛𝚜 𝚌𝚎𝚛𝚝𝚊, 𝚑𝚘𝚛𝚊 𝚒𝚗𝚌𝚎𝚛𝚝𝚊.
Команда форума
Администратор
Регистрация
21 Янв 2023
Сообщения
1,466
код:
<?php
session_start();
if($_POST['captcha'] == $_SESSION['rand_code'])
{   
    $_SESSION['server'] = $_POST['server'];
    require_once('../core/connect.php');
    
    //очистка входных аднных
    $password = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['password']))));
    $name = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['username']))));
    $key = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['code']))));
    
    $mysqli->set_charset("utf-8");
    $sql = "SELECT `Password`, `ID`, `Key` FROM `accounts` WHERE `NickName` = '{$name}'";
    $result = $mysqli->query($sql);
    
    if($result->num_rows == 1)
    {   
        $result->data_seek(0);
        $account = $result->fetch_assoc();
        $dbpassword = $account['Password'];
        $dbkey = $account['Key'];
        $id = $account['ID'];
        
        if(md5($password) == $dbpassword)
        {           
            if($dbkey > 0)
            {
                if($dbkey == $key)
                {
                    $_SESSION['account_name'] = $name;
                    $_SESSION['account_id'] = $id;
                    $_SESSION['account_logged'] = 'try';
                    header("Location: /account");
                }
                else
                {
                    $_SESSION['error'] = 3;               
                    header("Location: /login");
                }
            }
            else
            {
                $_SESSION['account_name'] = $name;
                $_SESSION['account_id'] = $id;
                $_SESSION['account_logged'] = 'try';
                header("Location: /account");
            }
        }
        else
        {
            $_SESSION['error'] = 2;
            header("Location: /login");
        }
    }
    else
    {
        $_SESSION['error'] = 1;
        header("Location: /login");
    }
    $result->close();
    $mysqli->close();
}
else
{
    $_SESSION['error'] = 4;
    header("Location: /login");
}
?>

не понял, зачем автор сайта применял два раза хеш md5. Из-за этого наверное у вас все и ломалось
 
Пользователь
Регистрация
15 Авг 2024
Сообщения
45
код:
<?php
session_start();
if($_POST['captcha'] == $_SESSION['rand_code'])
{  
    $_SESSION['server'] = $_POST['server'];
    require_once('../core/connect.php');
   
    //очистка входных аднных
    $password = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['password']))));
    $name = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['username']))));
    $key = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['code']))));
   
    $mysqli->set_charset("utf-8");
    $sql = "SELECT `Password`, `ID`, `Key` FROM `accounts` WHERE `NickName` = '{$name}'";
    $result = $mysqli->query($sql);
   
    if($result->num_rows == 1)
    {  
        $result->data_seek(0);
        $account = $result->fetch_assoc();
        $dbpassword = $account['Password'];
        $dbkey = $account['Key'];
        $id = $account['ID'];
       
        if(md5($password) == $dbpassword)
        {          
            if($dbkey > 0)
            {
                if($dbkey == $key)
                {
                    $_SESSION['account_name'] = $name;
                    $_SESSION['account_id'] = $id;
                    $_SESSION['account_logged'] = 'try';
                    header("Location: /account");
                }
                else
                {
                    $_SESSION['error'] = 3;              
                    header("Location: /login");
                }
            }
            else
            {
                $_SESSION['account_name'] = $name;
                $_SESSION['account_id'] = $id;
                $_SESSION['account_logged'] = 'try';
                header("Location: /account");
            }
        }
        else
        {
            $_SESSION['error'] = 2;
            header("Location: /login");
        }
    }
    else
    {
        $_SESSION['error'] = 1;
        header("Location: /login");
    }
    $result->close();
    $mysqli->close();
}
else
{
    $_SESSION['error'] = 4;
    header("Location: /login");
}
?>

не понял, зачем автор сайта применял два раза хеш md5. Из-за этого наверное у вас все и ломалось
это я написал какие варианты я пробовал чтобы заработало, но увы ни один из них не сработал. Этот кстати тоже
 
𝚖𝚘𝚛𝚜 𝚌𝚎𝚛𝚝𝚊, 𝚑𝚘𝚛𝚊 𝚒𝚗𝚌𝚎𝚛𝚝𝚊.
Команда форума
Администратор
Регистрация
21 Янв 2023
Сообщения
1,466
Пользователь
Регистрация
15 Авг 2024
Сообщения
45
покажите код регистрации
его нет, вот код странички входа в личный кабинет:
PHP:
<?php
session_start();
if($_POST['captcha'] == $_SESSION['rand_code'])
{  
    $_SESSION['server'] = $_POST['server'];
    require_once('../core/connect.php');
   
    $password = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['password']))));
    $name = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['username']))));
    $key = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['code']))));
   
    $mysqli->set_charset("utf-8");
    $sql = "SELECT `Password`, `ID`, `Key` FROM `accounts` WHERE `NickName` = '{$name}'";
    $result = $mysqli->query($sql);
   
    if($result->num_rows == 1)
    {  
        $result->data_seek(0);
        $account = $result->fetch_assoc();
        $dbpassword = $account['Password'];
        $dbkey = $account['Key'];
        $id = $account['ID'];
       
        if($password == $dbpassword)
        {          
            if($dbkey > 0)
            {
                if($dbkey == $key)
                {
                    $_SESSION['account_name'] = $name;
                    $_SESSION['account_id'] = $id;
                    $_SESSION['account_logged'] = 'try';
                    header("Location: /account");
                }
                else
                {
                    $_SESSION['error'] = 3;              
                    header("Location: /login");
                }
            }
            else
            {
                $_SESSION['account_name'] = $name;
                $_SESSION['account_id'] = $id;
                $_SESSION['account_logged'] = 'try';
                header("Location: /account");
            }
        }
        else
        {
            $_SESSION['error'] = 2;
            header("Location: /login");
        }
    }
    else
    {
        $_SESSION['error'] = 1;
        header("Location: /login");
    }
    $result->close();
    $mysqli->close();
}
else
{
    $_SESSION['error'] = 4;
    header("Location: /login");
}
?>

Сайт берет логин и пароль с бд сервера, а после входа и информацию об аккаунте.
 
𝚖𝚘𝚛𝚜 𝚌𝚎𝚛𝚝𝚊, 𝚑𝚘𝚛𝚊 𝚒𝚗𝚌𝚎𝚛𝚝𝚊.
Команда форума
Администратор
Регистрация
21 Янв 2023
Сообщения
1,466
код:
<?php
session_start();
if($_POST['captcha'] == $_SESSION['rand_code'])
{ 
    $_SESSION['server'] = $_POST['server'];
    require_once('../core/connect.php');
  
    $password = trim($_POST['password']);
    $name = $mysqli->real_escape_string(trim($_POST['username']));
    $key = $mysqli->real_escape_string(trim($_POST['code']));
  
    $mysqli->set_charset("utf-8");
    $sql = "SELECT `Password`, `ID`, `Key` FROM `accounts` WHERE `NickName` = '{$name}'";
    $result = $mysqli->query($sql);
  
    if($result->num_rows == 1)
    { 
        $result->data_seek(0);
        $account = $result->fetch_assoc();
        $dbpassword = $account['Password'];
        $dbkey = $account['Key'];
        $id = $account['ID'];
      
        if(strtoupper(md5($password)) == $dbpassword)
        {         
            if($dbkey > 0)
            {
                if($dbkey == $key)
                {
                    $_SESSION['account_name'] = $name;
                    $_SESSION['account_id'] = $id;
                    $_SESSION['account_logged'] = 'try';
                    header("Location: /account");
                    exit;
                }
                else
                {
                    $_SESSION['error'] = 3;             
                    header("Location: /login");
                    exit;
                }
            }
            else
            {
                $_SESSION['account_name'] = $name;
                $_SESSION['account_id'] = $id;
                $_SESSION['account_logged'] = 'try';
                header("Location: /account");
                exit;
            }
        }
        else
        {
            $_SESSION['error'] = 2;
            header("Location: /login");
            exit;
        }
    }
    else
    {
        $_SESSION['error'] = 1;
        header("Location: /login");
        exit;
    }
    $result->close();
    $mysqli->close();
}
else
{
    $_SESSION['error'] = 4;
    header("Location: /login");
    exit;
}
?>
попробуйте этот код, что-ли
 
Пользователь
Регистрация
15 Авг 2024
Сообщения
45
код:
<?php
session_start();
if($_POST['captcha'] == $_SESSION['rand_code'])
{
    $_SESSION['server'] = $_POST['server'];
    require_once('../core/connect.php');
 
    $password = trim($_POST['password']);
    $name = $mysqli->real_escape_string(trim($_POST['username']));
    $key = $mysqli->real_escape_string(trim($_POST['code']));
 
    $mysqli->set_charset("utf-8");
    $sql = "SELECT `Password`, `ID`, `Key` FROM `accounts` WHERE `NickName` = '{$name}'";
    $result = $mysqli->query($sql);
 
    if($result->num_rows == 1)
    {
        $result->data_seek(0);
        $account = $result->fetch_assoc();
        $dbpassword = $account['Password'];
        $dbkey = $account['Key'];
        $id = $account['ID'];
     
        if(strtoupper(md5($password)) == $dbpassword)
        {        
            if($dbkey > 0)
            {
                if($dbkey == $key)
                {
                    $_SESSION['account_name'] = $name;
                    $_SESSION['account_id'] = $id;
                    $_SESSION['account_logged'] = 'try';
                    header("Location: /account");
                    exit;
                }
                else
                {
                    $_SESSION['error'] = 3;            
                    header("Location: /login");
                    exit;
                }
            }
            else
            {
                $_SESSION['account_name'] = $name;
                $_SESSION['account_id'] = $id;
                $_SESSION['account_logged'] = 'try';
                header("Location: /account");
                exit;
            }
        }
        else
        {
            $_SESSION['error'] = 2;
            header("Location: /login");
            exit;
        }
    }
    else
    {
        $_SESSION['error'] = 1;
        header("Location: /login");
        exit;
    }
    $result->close();
    $mysqli->close();
}
else
{
    $_SESSION['error'] = 4;
    header("Location: /login");
    exit;
}
?>
попробуйте этот код, что-ли
Спасибо большое, сработал
 
Сверху