Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с кодированием паролей, из varchar в varbinary 
:(
    Опции темы
Vigoroso
Дата 2.8.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



у меня такая проблема... два одинаковые БД но с 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
что ему тут не нравится???
PM MAIL   Вверх
GiV
Дата 2.8.2006, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 13.7.2006
Где: rus|53

Репутация: 1
Всего: 9



        $query = "    UPDATE dbo.MEMB_INFO SET memb__pwd = '".md5($user[1], TRUE)."'
                    WHERE memb___id = '".$user[0]."'";
echo $query, '<br>';
        mssql_query($query);

Результаты в студию.
PM MAIL WWW ICQ   Вверх
Vigoroso
Дата 2.8.2006, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



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
PM MAIL   Вверх
GiV
Дата 2.8.2006, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 13.7.2006
Где: rus|53

Репутация: 1
Всего: 9



        $query = "    UPDATE dbo.MEMB_INFO SET memb__pwd = '".md5($user[1])."'
                    WHERE memb___id = '".$user[0]."'";


А так?
PM MAIL WWW ICQ   Вверх
Vigoroso
Дата 2.8.2006, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



Вычисляет 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 - 2.8.2006, 20:36
PM MAIL   Вверх
Vigoroso
Дата 3.8.2006, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



никто не знает?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0418 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.