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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перенос базы пользователей, скрипт 
:(
    Опции темы
sergphp
Дата 23.6.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Имею базу пользователей в мускуле около 10.000 на самописном движке с незашифрованными паролями. Возникла необходимость их импорта в форум воблы.

Избрал следующий путь:

1. экспортил в .csv файл;
2. собрал скриптец, который берет и заносит в базу воблы;
3. Облом возник, когда я узнал что в форуме хитрое шифрование;

Код
<?  

$host = "localhost";    // MySQL server 
$user_db = "1";        // MySQL пользователь 
$pass_db = "2";            // MySQL пароль 
$dbase = "1";        // MySQL база данных 



 $link = @mysql_pconnect ($host, $user_db, $pass_db); 
        if ($link) {  
            mysql_select_db($dbase);  
        } else {  
            exit("Unable to connect to database.  Please try again later.\n");  
        }   
  
$data=file('eu_user.csv');  


     function fetch_user_salt($length = 3) 
    { 
        $salt = ''; 
        for ($i = 0; $i < $length; $i++) 
        { 
            $salt .= chr(rand(32, 126)); 
        } 
        return $salt; 
    } 
     
if (is_array($data))  
  {  
   foreach ($data as $string)  
      {  
       $temp=explode(";",$string);  
      
        $salt = fetch_user_salt( 3 ); 
        $pwd = md5( md5( $temp[3] ).$salt ); 
         
     #  $username.( "', salt='".$salt."', password='{$pwd}', " ) 
        
      $query="INSERT INTO f_user SET  userid='$temp[0]',email='$temp[1]',username='$temp[2]',password='$pwd'";  
       $result=mysql_query($query);  
      }  
   }  
    
  
?>


Кто-нибудь подскажите, как дописать скрипт, чтобы коннектился к старой базе напрямую, брал нужные поля, при этом шифровал пароли и заносил в базу форума!
    



Это сообщение отредактировал(а) sergphp - 23.6.2009, 17:27
PM MAIL   Вверх
Photon
Дата 24.6.2009, 06:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


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

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



Во-первых вот так:
Код

  $salt = fetch_user_salt( $temp[2] ); 
  $pwd = md5( md5($temp[3]).$salt ); 
         
        
  $query="INSERT INTO f_user (userid, email, username, password,salt) values('$temp[0]', '$temp[1]', '$temp[2]', '$pwd', '$salt')";  
  $result=mysql_query($query);  


Ответ на вопрос:

Код

$link1 = mysql_connect($host1, $login1, $pass1);
mysql_select_db($db1, $link1);

$link2 = mysql_connect($host2, $login2, $pass2);
mysql_select_db($db1, $link2);

$res1 = mysql_query('select login,pass from users', $link1);
if (mysql_num_rows($res1) > 0)
  while ($data = mysql_fetch_assoc($res1)) {
     //Обработка данных: генерация пароля и т.п.
     mysql_query("INSERT INTO f_user (userid, email, username, password,salt) values('$temp[0]', '$temp[1]', '$temp[2]', '$pwd', '$salt')");
  }


Примерно так..

Это сообщение отредактировал(а) Photon - 24.6.2009, 06:42


--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
sergphp
Дата 24.6.2009, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А если вот такую конструкцию 

Код


$link1 = mysql_connect($host_a, $user_db_a, $pass_db_a);
mysql_select_db($dbase_a, $link1);

$link2 = mysql_connect($host, $user_db, $pass_db);
mysql_select_db($dbase, $link2);

$res1 = mysql_query('id, email, username, pwd, regdate FROM $dtable', $link1);


if (mysql_num_rows($res1) > 0)
  while ($data = mysql_fetch_assoc($res1)) {
     //Обработка данных: генерация пароля и т.п.
     mysql_query("INSERT INTO f_user SET  userid='$id',email='$email',username='$username',p  assword='$pwd',salt='$salt')");
  }



Правда, ругается на 


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\myimport\index2.php on line 34



34. if (mysql_num_rows($res1) > 0)

Это сообщение отредактировал(а) sergphp - 24.6.2009, 10:51
PM MAIL   Вверх
bars80080
Дата 24.6.2009, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Цитата(sergphp @  24.6.2009,  10:50 Найти цитируемый пост)
'id, email, username, pwd, regdate FROM $dtable'

а это по вашему полноценный запрос? мало того, что нет ключевого слова (SELECT, INSERT, UPDATE, SHOW, DESCRIBE и т.д.), так ещё вы засунули в строку переменную, надеясь что она отдаст своё значение в одинарных кавычках

пишите по правилам, будет вам счастье

Код

$sql = 'SELECT id, email, username, pwd, regdate FROM '.$dtable;

$res1 = mysql_query($sql, $link1);

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


 




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


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

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