Где ошибка в php коде

программирование

Сам код:
<?php
$text = $_GET['r'];
$mat = file_get_contents('http://api-s.antimat.hol.es/?r='.$text);
if ($mat == "1"){
echo 'Обнаружен мат!';
}
else
{
echo $_GET['r'];
}
?>
Проблема такова, даже если $mat будет равняться 1, то условие не выполняется. В чем проблема?
Ответы:
file_get_contents функция возвращает разметку страницы
Ошибка раз: $text = $_GET['r']; — никто не гарантирует существования элемента, чтобы вы могли прочитать его для записи в переменную.
Ошибка два: $mat = file_get_contents('http://api-s.antimat.hol.es/?r='.$text); — никто не гарантирует, что $text содержит корректное значение (ведь вы его взяли из $_GET без всяких проверок и фильрации). Никто не гарантирует, что это значение записано в форме, соответствующей требованиям записи URL (и скорее всего, не соответствует).
Ошибка три: if ($mat == "1") вместе с предыдущей строкой — вы не контролируете успешность чтения данных, а при возникновении ошибки все ваши дальнейшие действия могут быть ошибочными и бессмысленными.


10 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.