Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Скрытый IP-адрес

Сообщения:  [1-10]   [11-20] 

 
 автор: sega_z   (01.05.2011 в 20:49)   письмо автору
 
   для: cheops   (01.05.2011 в 20:43)
 

Огромное спасибо!!!

  Ответить  
 
 автор: cheops   (01.05.2011 в 20:43)   письмо автору
 
   для: sega_z   (01.05.2011 в 18:13)
 

Да (так как IP-адрес формируется сервером, а не пользователем, этого регулярного выражения должно быть более чем достаточно).

  Ответить  
 
 автор: sega_z   (01.05.2011 в 18:13)   письмо автору
 
   для: cheops   (01.05.2011 в 17:57)
 

Т.е. в этом коде возможны все одно-, двух-, трёх-значные цифры и точки между ними?

  Ответить  
 
 автор: cheops   (01.05.2011 в 17:57)   письмо автору
 
   для: sega_z   (01.05.2011 в 17:44)
 

Можно начать отталкиваться примерно от следующего скрипта
<?php
if (!preg_match("/^[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}$/"$_SERVER['REMOTE_ADDR']))

exit (
"<br><h3 align='center'>Сообщения от пользователей со скрытым IP адресом не принимаются<h3>");     
}
?>

  Ответить  
 
 автор: sega_z   (01.05.2011 в 17:44)   письмо автору
 
   для: cheops   (01.05.2011 в 17:35)
 

Да у меня есть проверка:


if (empty ($_SERVER['REMOTE_ADDR'])) // Если пользователь скрыл свой IP адрес
{
exit ("<br><h3 align='center'>Сообщения от пользователей со скрытым IP адресом не принимаются<h3>");    
}  


И теперь достаточно проверить наличие формы цифр с точками.

Можете написать полный код регулярного выражения, а то я их как то не очень понимаю.

  Ответить  
 
 автор: cheops   (01.05.2011 в 17:35)   письмо автору
 
   для: sega_z   (01.05.2011 в 17:31)
 

Ну в самом простом варианте (без скрупулезного соответствия от 0 до 255) это выражение будет выглядеть так
/^[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}$/
однако в реальности достаточно проверить, чтобы эта переменная не была пустой при помощи empty() - собственно другие варианты уже слишком невероятны, если они случаются - от сервера можно ожидать чего угодно.

  Ответить  
 
 автор: sega_z   (01.05.2011 в 17:31)   письмо автору
 
   для: cheops   (01.05.2011 в 17:11)
 

А может составить регулярное выражение для наличия в переменной $ip = $_SERVER['REMOTE_ADDR'] именно IP адреса (они же все одного типа: 102.25.25.52)?

  Ответить  
 
 автор: cheops   (01.05.2011 в 17:11)   письмо автору
 
   для: sega_z   (01.05.2011 в 15:28)
 

Это вообще говоря редкая штука, чаще всего переменные перезатираются самим скриптом, поэтому очень важно зафиксировать моменты появления этой ошибки, чтобы потом можно было воспроизвести ситуацию.

  Ответить  
 
 автор: sega_z   (01.05.2011 в 15:28)   письмо автору
 
   для: cheops   (01.05.2011 в 13:28)
 

Кстати, техподдержка моего хостинга тоже удивлена причиной пустой переменной $ip.

Вот их ответ:
"Уточните, при этом остальные элементы массива _SERVER притствуют? Заметили ли вы какую-то закономерность в возникновении подобных ошибок (один и тот же клиент или что-то подобное)?"

  Ответить  
 
 автор: sega_z   (01.05.2011 в 14:38)   письмо автору
 
   для: cheops   (01.05.2011 в 13:28)
 

С данным вопросом я обратился в техподдержку хостинга, жду ответа ...
Сообщу вам о результатах.

  Ответить  

Сообщения:  [1-10]   [11-20] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования