Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > проблема с кодированием паролей


Автор: Vigoroso 2.8.2006, 16:18
у меня такая проблема... два одинаковые БД но с 1 разницей, в том что в 1 пароли, так сказать в текстовом  варианте, а в другой должны быть теже пароли только закодирование при помощи md5 в бинарную строку, как мне кажется, такое напрямую не осуществить, поэтому я сперве копирую пары логин-пароль из первой базы в файл, для дальнейшего их восстановления во второй базе...

из базы в файл:
Код

require 'config.php';
    
    $query = "SELECT memb___id, memb__pwd FROM MEMB_INFO";
    $result = mssql_query($query);
    
    $data = fopen("users.dat","w");
    while ($line = mssql_fetch_row($result)){
        $str = $line[0]."!".$line[1]."\n";
        fwrite($data,$str);
    }
    fclose($data);


После того как файл создан вызываю:
Код

require 'config.php';
    
    $data = fopen("users.dat","r");
    
    while (!feof($data)){
        $line = fgets ($data);
        $user = split("!",$line);
        echo $user[0]." ".$user[1]."<br>";
        $query = "    UPDATE dbo.MEMB_INFO SET memb__pwd = '".md5($user[1], TRUE)."'
                    WHERE memb___id = '".$user[0]."'";
        mssql_query($query);
    }
    fclose($data);

вот тут и возникает ошибка:

Warning: mssql_query() [function.mssql-query]: message: Line 2: Incorrect syntax near '_Fire_'. (severity 15) in z:\home\new\www\execusers.php on line 12

Warning: mssql_query() [function.mssql-query]: message: Unclosed quotation mark before the character string ''. (severity 15) in z:\home\new\www\execusers.php on line 12

Warning: mssql_query() [function.mssql-query]: Query failed in z:\home\new\www\execusers.php on line 12
что ему тут не нравится???

Автор: GiV 2.8.2006, 16:41
        $query = "    UPDATE dbo.MEMB_INFO SET memb__pwd = '".md5($user[1], TRUE)."'
                    WHERE memb___id = '".$user[0]."'";
echo $query, '<br>';
        mssql_query($query);

Результаты в студию.

Автор: Vigoroso 2.8.2006, 16:59
UPDATE dbo.MEMB_INFO SET memb__pwd = 'ј&u)jh*l�и@ј' WHERE memb___id = '_Fire_'

Warning: mssql_query() [function.mssql-query]: message: Line 2: Incorrect syntax near '_Fire_'. (severity 15) in z:\home\new\www\execusers.php on line 13

Warning: mssql_query() [function.mssql-query]: message: Unclosed quotation mark before the character string ''. (severity 15) in z:\home\new\www\execusers.php on line 13

Warning: mssql_query() [function.mssql-query]: Query failed in z:\home\new\www\execusers.php on line 13

Автор: GiV 2.8.2006, 19:01
        $query = "    UPDATE dbo.MEMB_INFO SET memb__pwd = '".md5($user[1])."'
                    WHERE memb___id = '".$user[0]."'";


А так?

Автор: Vigoroso 2.8.2006, 20:32
Вычисляет MD5 хэш строки str используя алгоритм MD5 RSA Data Security, Inc. и возвращает этот хэш. Хэш представляет собой 32-значное шестнадцатеричное число. Если необязательный аргумент raw_output имеет значение TRUE, то возвращается бинарная строка из 16 символов.
тогда ещё такой вопрос:
рассмотрим вот такой запрос...
Код

$msquery2 = "INSERT INTO MEMB_INFO (memb___id,memb__pwd,memb_name,sno__numb,mail_addr ,appl_days,modi_days,out__days,true_days,mail_chek ,bloc_code,ctl1_code) VALUES ('$login',CONVERT(varbinary(16),'0x00'),'$name','1 ','$email','01/01/2006','01/01/2006','01/01/2006','01/01/2006','1','0','1')";
$msresults= mssql_query($msquery2);

я не могу понят запись 
CONVERT(varbinary(16),'0x00') что же он конвертирует? если на том месте нет никакой переменной?... или как это рабтает?

Добавлено @ 20:43 
помогите пожалуйста, очень нужно!

Автор: Vigoroso 3.8.2006, 10:35
никто не знает?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)