Показать сообщение отдельно

  #7  
Старый 25.12.2007, 13:01
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

Вот написал скрипт читает строки слов из файла словаря и заностит в таблицу:
PHP код:
<?
include('conf.php');
include(
'checkpass.php');
include(
'function.php');
ignore_user_abort(1);
set_time_limit(0);

$fd fopen("./dict.txt""r");
$unical 0;
$nonunical 0;
if(!
$fd)
    {
    return 
"Fill 'dictionary_file' field!";
    }
else
     {
    while(!
feof($fd))
        {
        
$pass str_replace("\r\n",""fgets($fd));
        if (
add_pass_noncheck($pass)) $unical++;
        else 
$nonunical++;
        }
    echo 
"добавлено уникальных: ".$unical." паролей <br>";
    echo 
"не уникальных: ".$nonunical." паролей <br>";
}
fclose($fd);
?>
Почему-то скрипт не обрабатывает файл до конца, т.е в файле 50 тыс. строк, а скрипт заносит в таблицу например 12 тыс. и прекращает работу. В чём трабл? Есть глобальные переменные ограничивающие время работы скрипта или дело в колличестве запросов к Мускулу в един. времени (в add_pass_noncheck($pass) там запросы к MySQL)?

ЗЫ На Локалхосте всё пашет без проблем, на серваке нет...

Вот нашёл ответ:
Цитата:
set_time_limit() не действует, если PHP запущен в режиме safe mode. Нет иного выхода, кроме отключения safe mode или изменения лимита времени в файле конфигурации.
А как решить другим путём? Разбить на несколько скриптов и разбить файл словарей на неск. частей?

И почему тогда этот скрипт:
PHP код:
<?php
include('conf.php');
include(
'checkpass.php');
include(
'function.php');
$dl=true;


      if (isset(
$_POST['ta'])) 
        {
        
$tmp=$_POST['ta'];
        
$r explode("\r\n"$tmp);
        
$add=0;
        
$nadd=0;
        foreach (
$r as $pass
          {
          
$query "SELECT `passwd` from ".$db_table." WHERE `passwd`='".$pass."'";
            
$r=mysql_query($query);
            if (!
debugS($dl)) 
              {
              if(!
mysql_num_rows($r) and check($pass)) 
                 {
                
$k=add_pass($pass);
                
debugS($dl);
                
$add++;
                }
              else 
$nadd++;
              }
          }
        echo 
"уникальных паролей добавлено в базу: <b>".$add."</b>\r\n  неуникальных паролей: <b>".$nadd."</b>\r\n спасибо.<br>";
        }  

?>
читающий пассы из Post-массива работает нормально без ограничений по времени?

Последний раз редактировалось -=lebed=-; 25.12.2007 в 14:28..
 
Ответить с цитированием