Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
HELP php Гость
|
Добавлено: Пн Янв 20 2003 16:37 Заголовок сообщения: Чтот зацикливается цикл |
|
|
Написал код, который должен записать IP клиента, но перед записью проверить есть ли такой или нет.
Происходит ошибка когда в циклах. Зацикливается цикл во втором случае, то есть если адрес не найден. Происходит бесконечнвая запись в файл и вывод повторений на экран "такого адреса у нас нет" ? $ipaddr=getenv("HTTP_X_FORWARDED_FOR"); IF((ISSET($i paddr))) { $ipaddr=getenv("REMOTE_ADDR"); } $filename = "visit.log"; $fl=fopen($filename,'r'); while (!feof($fl)) { $buffer = fgets($fl, 4096); if(strstr($buffer,$ipaddr)) { echo "адрес существует"; } else { echo "такого адреса у нас нет"; $fl=fopen($filename,'a'); fwrite ($fl, "$ipaddr"); }} ? |
|
Вернуться к началу |
|
|
Dmitry.Karpov http://prof Гость
|
Добавлено: Пн Янв 20 2003 17:42 Заголовок сообщения: Так ты что, файл два раза открываешь? (-) |
|
|
. |
|
Вернуться к началу |
|
|
VITY Гость
|
Добавлено: Пн Янв 20 2003 22:38 Заголовок сообщения: Re: Чтот зацикливается цикл |
|
|
ГЫ! ты хоть сам то понял что написал?! короче перевожу на русский: берём ипи, открываем файл читаем первые 4096 символов файла, если в них ипи отсутствует тогда его туда записываем, дальше файл если ещё не кончился то читаем следующие 4096 символов, если среди них тоже нет ипи тогда снова открываем файл и ЕЩЁ РАЗ ЕГО ТУДЫ ПИШЕМ, дальше если файл не кончился читаем.....
1)дальше продолжать или самм понял? 2)а что если файл лога весит 10 мб? ты в курсе что у тебя скрипт вылетит к чёртовой матери т.к. в пхп по умолчанию памяти для каждого скрипта выделяется не более 5 мб. на халявных хостингах меньше.... 3) а что если на сайт зашли сразу 20 человек? то память компа должна иметь как минимум 200 мб! а если более? а что если 4096 байт от фала закончатся на не законченном НУЖНОМ IP т.е. например 62.213.4 и всё! а следующий кусок будет начинаться так: 6.106
короче ты это зря затеял! |
|
Вернуться к началу |
|
|
|