Синхронизация

Discussion in 'PHP' started by Vinsik, 6 Apr 2009.

  1. Vinsik

    Vinsik Elder - Старейшина

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    Вопщем есть страница авторищации для одной вещи, я бы хотел обьеденить регистрацию вместе с форумом vbulletin
    булка использует мд5 хеш + 3 случайных символа
    Выглядит это так
    $passwordhash = md5 (md5 ($password) . $salt);
    $salt - это таблица в БД где и хранятся эти три символа
    как мне это встроить вот в этот код?
    PHP:
    <?php
        $dblocation 
    "localhost";
        
    $dbname "test";
        
    $dbuser "root";
        
    $dbpasswd "root";
        
    $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
        if (!
    $dbcnx) {
          echo( 
    "<P>В настоящий момент сервер базы данных не
                              доступен, поэтому корректное отображение
                              страницы невозможно.</P>" 
    );
          exit();
        }
        if (! @
    mysql_select_db($dbname,$dbcnx) ) {
          echo( 
    "<P>В настоящий момент база данных не доступна, 
                              поэтому корректное отображение страницы
                              невозможно.</P>" 
    );
          exit();
        }
        
    $query "SELECT password FROM users WHERE name='".$_POST['name']."'";
        
    $nme mysql_query($query);
        if(!
    $nme)
        {
          echo 
    "Ошибка выполнения запроса";
          exit();
        }
        if(
    mysql_num_rows($nme) > 0)
        {
           
    $password mysql_result($nme,0);
           if (
    $_POST['password'] == $password)  echo "Hello, $name"
           else
           {
             echo 
    "Ошибка идентификации: неправильный пароль";
             exit();
           }
        }
        else
        {
          echo 
    "Ошибка идентификации: посетитель не зарегистрирован";
          exit();
        }
    ?> 
    Например если в этой
    PHP:
       $query "SELECT password FROM users WHERE name='".$_POST['name']."'";
    строке заменить password на email то авторизация ник +емаил идет.
    Вопщем как прикрутить алгоритм шифрования $passwordhash = md5 (md5 ($password) . $salt); к этому коду?? :confused: в БД таблица salt имеется
     
    #1 Vinsik, 6 Apr 2009
    Last edited: 6 Apr 2009
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Vinsik
    PHP:
    <?php
    $dblocation 
    "localhost";
    $dbname "test";
    $dbuser "root";
    $dbpasswd "root";
    $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
    if (!
    $dbcnx) {
        echo( 
    "<P>В настоящий момент сервер базы данных не
        доступен, поэтому корректное отображение
        страницы невозможно.</P>" 
    );
        exit();
    }
    if (! @
    mysql_select_db($dbname,$dbcnx) ) 
    {
        echo( 
    "<P>В настоящий момент база данных не доступна, 
        поэтому корректное отображение страницы
        невозможно.</P>" 
    );
        exit();
    }

    $query "SELECT password, salt FROM users WHERE name='".mysql_real_escape_string($_POST['name'])."'";
    $nme mysql_query($query);
    if(!
    $nme)
    {
        echo 
    "Ошибка выполнения запроса";
        exit();
    } else if (
    mysql_num_rows($nme) != 1)
    {      
        echo 
    "Ошибка идентификации: неправильное имя пользователя и/или пароль";
        exit();
    }

    $bpass=mysql_fetch_assoc($nme);

    if (
    md5(md5($_POST['password']).$bpass['salt']) == $bpass['password'])  
    {
        echo 
    "Hello, $name"
    }
    else
    {
        echo 
    "Ошибка идентификации: неправильное имя пользователя и/или пароль";
        exit();
    }
    ?>  
     
    _________________________