@maiskiykot
Free coder

В чем причина глюков PHP?

На локали стоит Vertrigoserv последней версии. Все вроде бы работает, но столкнулся со странностями.

1. Определяю IP. Вывожу для проверки - все работает. Далее идет пару циклов, переменная IP не перезаписывается, не изменяется, ошибок PHP нет. НО!!! Открываю следующий цикл а переменная IP пропала! Причем не помогает даже новое определение IP. Наглухо пропадает!
Что это может быть?
2. Есть обычная ссылка в html вида page.php?page=5. Т.е. при ее отправке в браузер должна появиться переменная $_GET['page']. Однако попытка перехватить ее до загрузки кода страницы ни к чему не приводит! Только методом тыка удалось определить, что она срабатывает только при размещении кода в нижней части страницы.
Что это может быть?
3. Не срабатывает код принудительному определению переменной $_GET['address']. Объявляю ее в начале кода а в конце должно перехватить и проинклюдить полученный адрес. Тишина!
Что это может быть?

Ошибки в коде исключаю, потому что проверил все раз на 100. Может настройки PHP какие-то чудят? От чего может появиться такой полтергейст?

p.s. недостающий код.
if (isset($_GET))
{
foreach ($_GET as $key=>$value)
{
$anchor = $key;
break;
}

$IP = $_SERVER["REMOTE_ADDR"];

if (!file_exists("./stats-ip.dat"))
{
$fp = fopen("./stats-ip.dat","a+");
$puts = $IP."::".$anchor."\n";
}
else
{
$file = file("./stats-ip.dat");
$file1 = "./stats-ip.dat";
$file2 = "./admin/stats-bak.dat";
if (@filesize($file1 >= $file2))
copy ($file1,$file2);

if (!in_array($IP,$file))
{
$file[] = $IP."::".$anchor."\n";
$puts = implode("",$file);
}
else
{
$puts = '';

foreach ($file as $value)
{
echo $IP;

if(preg_match("!".$IP."!",$value)) // Вот здесь уже IP пропал!!!
{
echo "Match!";
$puts .= trim($value)." ".$anchor."\n";
}
else
$puts .= $value;
}
}
$fp = fopen("./stats-ip.dat","r+");
}
fputs($fp,$puts);
fclose($fp);
}
  • Вопрос задан
  • 188 просмотров
Решения вопроса 1
@imhuman
Значение не пропадает, просто та часть кода, в которой выводитсяecho не отрабатывает по условию
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Смотрите что у вас лежит в массиве, который вы получаете из файла, и что вы ищите.

В файл вы кладете строку в формате
127.0.0.1::xx
И ищите вхождение только ip.

Собственно, у вас по той ветке, где ip "пропадает", код никогда и не ходит

Ну и разделите хотя бы на функции ваш код, не говоря уже про ООП.
Ответ написан
paulfcdd
@paulfcdd
PHP/Sf/WEB developer
Ошибки в коде исключаю, потому что проверил все раз на 100

А вот я бы не исключал именно ошибок в коде, поэтому кидай его тут и будем смотреть. Без кода твой вопрос бессмысленный
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 11:02
5000 руб./за проект
25 апр. 2024, в 10:42
150000 руб./за проект
25 апр. 2024, в 10:41
2000 руб./за проект