
25.12.2007, 13:01
|
|
Флудер
Регистрация: 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..
|
|
|