[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает скрипт
seomm
Здравствуйте, вот скрипт конвертер форума ucoz в SMF, все работает кроме пользователей и переноса сообщений

Цитата
<?php
set_time_limit(60000);
include "config.php";
echo'<a href=?step1>Конвертация пользователей</a> -> <a href=?step2>Конвертация разделов</a> -> <a href=?step3>Конвертация тем</a> -> <a href=?step4>Конвертация сообщений</a> -> <a href=?step5>Финальный этап - настройка</a> ->';
if(isset($_GET['step1']))
{
$filename = "ucoz/_s1/users.txt";

$fd = fopen($filename, "r");

$i = 0;

mysql_query("SET CHARACTER SET cp1251");

echo "Лог ковертирования<br>";
while (!feof ($fd))
  {

  $bufer[$i] = fgets($fd, 12288);
 
  $bufer[$i] = iconv("UTF-8", "Windows-1251", "$bufer[$i]");
     
  $arr = explode("|", $bufer[$i]);

  $i++;
  if($arr[0] != ""){
 
  $query = "INSERT IGNORE INTO smf_members (`member_ip`,`birthdate`,`last_login`,`id_group`,`member_name`,`real_name`,`is_activated`,`email_addr ess`, `passwd`, `posts`, `date_registered`, `icq`) VALUES
('$arr[16]','$arr[22]','$arr[2]','4','$arr[0]','$arr[5]','1','$arr[7]', '$arr[2]', '0', '$arr[15]', '$arr[9]');
";
  $result = mysql_query($query);
 
    if(!$result) { echo ("<font color=red>MySQL вернула ошибку <br><
    <br></font>");} else echo "<textarea name=\"html\" style=\"width:600px; height:100px\" cols=\"60\" rows=\"5\" tabindex=\"1\">
Пользователь «$arr[0]» успешно сконвертирован </textarea>";
    }
 
  }
 
fclose($fd);

}
if(isset($_GET['step2']))
{
$filename = "ucoz/_s1/fr_fr.txt";

$fd = fopen($filename, "r");

$i = 0;

$e = 0;

mysql_query("SET CHARACTER SET cp1251");

echo "Лог ковертирования<br>";
while (!feof ($fd))
  {

  $bufer[$i] = fgets($fd, 4096);
 
  $bufer[$i] = iconv("UTF-8", "Windows-1251", "$bufer[$i]");
     
  $arr = explode("|", $bufer[$i]);
 
  $i++;



$arr[11] = date('Y-m-d G:i:s' ,$arr[11]);
    $query = "INSERT IGNORE INTO smf_boards (`id_board`, `name`, `description`, `board_order`) VALUES
('$arr[0]', '$arr[5]', '$arr[6]', '1');
";
    $result = mysql_query($query);
 
      if(!$result) { echo ("<font color=red>MySQL вернула ошибку <br><textarea style='width: 300px; height: 200px'>".mysql_error()."</textarea><br> в коде <br><textarea style='width: 300px; height: 200px'>$query
</textarea><br><br></font>");} else echo "<textarea name=\"html\" style=\"width:600px; height:100px\" cols=\"60\" rows=\"5\" tabindex=\"1\">Форум «$arr[5]» успешно сконвертирован</textarea>";

  }

 
fclose($fd);

echo "Конвертация категорий и форумов завершена!<br>";
}
if(isset($_GET['step3']))
{
$filename = "ucoz/_s1/forum.txt";

$fd = fopen($filename, "r");

$i = 0;


mysql_query("SET CHARACTER SET cp1251");

echo "Лог ковертирования<br>";
while (!feof ($fd))
  {

  $bufer[$i] = fgets($fd, 4096);
 
  $bufer[$i] = iconv("UTF-8", "Windows-1251", "$bufer[$i]");
     
  $arr = explode("|", $bufer[$i]);
 
   
 
  $i++;

  $info = "SELECT * FROM smf_boards WHERE id_board = $arr[1]";

  $a = mysql_query($info);

  $query = "INSERT IGNORE INTO smf_topics (`id_topic`, `id_board`, `approved`) VALUES
('$arr[0]', '$arr[1]', '1');
";
  $result = mysql_query($query);
 
  if(!$result) { echo ("<font color=red>MySQL вернула ошибку <br><textarea style='width: 300px; height: 200px'>".mysql_error()."</textarea><br> в коде <br><textarea style='width: 300px; height: 200px'>{$query}</textarea><br><br></font>");} else echo "<textarea name=\"html\" style=\"width:600px; height:100px\" cols=\"60\" rows=\"5\" tabindex=\"1\">Тема «$arr[8]» успешно сконвертирована</textarea>";
}


 
fclose($fd);

echo "Конвертация тем завершена!<br>";

}

if(isset($_GET['step4']))
{
$filename = "ucoz/_s1/forump.txt";

$fd = fopen($filename, "r");

$i = 0;


mysql_query("SET CHARACTER SET cp1251");

echo "Лог ковертирования<br>";
while (!feof ($fd))
  {

  $bufer[$i] = fgets($fd, 4096);
 
  $bufer[$i] = iconv("UTF-8", "Windows-1251", "$bufer[$i]");
     
  $arr = explode("|", $bufer[$i]);


  $arr[4] = preg_replace("#\'#i", "`", $arr[4]);
 
  $i=$i+1;
$name=$arr['6'];
  $info = mysql_query("SELECT * FROM smf_members WHERE member_name = '".$name."'");

  while($a = mysql_fetch_array($info)){
    $a['id_member']=$uid;
  $a['email_address']=$umail;
$a['member_ip']=$uip;
  }

  $dat_e = date('Y-m-d G:i:s' ,$arr[2]);

  $query = "INSERT IGNORE INTO smf_messages (`id_msg`, `id_topic`, `poster_time`, `id_member`, `poster_name`, `poster_email`, `poster_ip`, `body`, `approved`) VALUES
('$arr[0]','$arr[1]', '$arr[2]', '".$uid."', '$arr[6]', '".$umail."', '".$uip."', '$arr[4]', '1');
";
  $result = mysql_query($query);
 
  if(!$result) { echo ("<font color=red>MySQL вернула ошибку <br><textarea style='width: 300px; height: 200px'>".mysql_error()."</textarea><br> в коде <br><textarea style='width: 300px; height: 200px'>{$query}</textarea><br><br></font>");} else echo "<textarea name=\"html\" style=\"width:600px; height:100px\" cols=\"60\" rows=\"5\" tabindex=\"1\">Сообщение пользователя «$arr[6]» успешно сконвертировано</textarea>";
}


 
fclose($fd);

echo "Конвертация сообщений завершена!<br>";
}
if(isset($_GET['step5']))
{
  $post = mysql_query("SELECT * FROM smf_topics");
  while ($news = mysql_fetch_array($post)) {
  $news['id_topic']=$mid;
  $news['id_board']=$bid;


    $sql = mysql_query("UPDATE `smf_messages` SET `id_board` = '".$bid."' WHERE id_topic='".$mid."'");
  }
 
 
   
$post = mysql_query("SELECT * FROM smf_members");
  while ($news = mysql_fetch_array($post)) {
    $pod = mysql_query("SELECT * FROM smf_messages where poster_name ='".$news['member_name']."'");
  $kolvoposts = mysql_num_rows($pod);
    $sql = mysql_query("UPDATE `smf_members` SET `posts` = '".$kolvoposts."' WHERE member_name='".$news['member_name']."'");
  }
 
  $post = mysql_query("SELECT * FROM smf_messages");
  while ($news = mysql_fetch_array($post)) {
    $pod = mysql_query("SELECT * FROM smf_members where member_name ='".$news['poster_name']."'");
  $ugen = mysql_fetch_array($pod);
    $sql = mysql_query("UPDATE `smf_messages` SET `id_member` = '".$ugen['id_member']."',  `poster_name` = '".$ugen['member_name']."', `poster_ip` = '".$ugen['member_ip']."', `poster_email` = '".$ugen['email_address']."' WHERE poster_name='".$news['poster_name']."'");
  } 
echo "Последний этап настройки завершен!<br>Обновите счетчики и показатели в панели управления форума!";
}
?>




Спустя 14 минут, 14 секунд (5.06.2011 - 13:15) Игорь_Vasinsky написал(а):
красивее если не цитатой а php кодом. покажи именно тот кусок который не работает.

Спустя 7 минут, 7 секунд (5.06.2011 - 13:22) seomm написал(а):
Проблема в том что скрипт переносит пустые имена пользователей, а сообщения вообще не переносит, получается вот этот кусок отвечает за перенос пользователей


{
$filename = "ucoz/_s1/users.txt";

$fd = fopen($filename, "r");

$i = 0;

mysql_query("SET CHARACTER SET cp1251");

Спустя 12 минут, 3 секунды (5.06.2011 - 13:34) Basili4 написал(а):
seomm
этот кусок лишь открывает файл с пользователями.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.