Рабочий код, но жалуется на какую-то ошибку. Что не так?

Sower
На сайте с 30.12.2009
Offline
659
468

На сайте стоит поиск. Если искать запрещённое слово, то отдаётся пустая страница с заголовком 404. На старом сервере работало всё ок, перешёл на новый, тоже работает, но в самом верху всех страниц search.php, прописывается текст

Notice: Undefined index: q in /var/www/user/data/www/domen.com/search.php on line 2

Вот начало кода страницы. Жалуется именно на этот кусок.

<?
if (strpos($_GET['q'], 'stopslovo') !== FALSE )
{
header("HTTP/1.1 404 Not Found");
exit;
}

Что ему не нравится в этой второй точке?

адрес вызова страницы имеет вид domen.com/search.php?q=slovo

stopslovo = любое слово

На форуме код отображается не корректно. Квадратные скобки заменяются на ***91; и ***93;

Если нажать на кнопку "Цитата", то весь код нормально отображается.

__________________Бесплатная накрутка ПФ: посещаемость, просмотры, переходы с поисковиков по ключевикам, итд.
__________________Все посетители живые, не боты. (http://livesurf.ru/promo/80271)
LovelAss
На сайте с 05.06.2009
Offline
96
#1

Переменные нужно проверять на существование, либо определять их значения, прежде чем выполнять какие-либо операции с ними. В данном случае:


<?
if ( isset($_GET['q']) && strpos($_GET['q'], 'stopslovo') !== FALSE )
{
header("HTTP/1.1 404 Not Found");
exit;
}

Конечно есть и другой вариант, отключить вывод notice, но лучше писать правильный код.

Sower
На сайте с 30.12.2009
Offline
659
#2
LovelAss:
Переменные нужно проверять на существование, либо определять их значения, прежде чем выполнять какие-либо операции с ними. В данном случае:

Конечно есть и другой вариант, отключить вывод notice, но лучше писать правильный код.

Благодарю. Помогло.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий