А я все таки опять почитал маленько и опять свое навоял, гляньте как тут есть ошибки какието? PHP: <?php $id = intval($_GET['id']); if($id){ if($id == 1 or $id <= 4000){ echo "Все нормально передано число."; } else{ echo "Страница не найдена!"; } }else{ echo "Похоже это не число."; } ?>
is_numeric проверяет число в строке, или нет. Только для защиты от SQL-инъекций это не нужно. И даже если вставишь проверку, не надо писать "Попытка SQL-инъекции", "В get передали не число" и т.п. Любой урл, по которому не возможна отдача запрошенной информации, должен кидать статус 404 и соответствующую страничку
Ну выборка данных то идет по переданному get, значит его можно модефецировать.? Я уже совсем окончательно запутался. --- Добавлено --- Мне то нужно узнать что в ссылке именно число, и если это число то передавать его для запроса, а если это не число и у меня нет никаких проверок то что будет?
уже разжевали и на блюдочке подали, Афтар темы - хватит боятся своих выдуманных кошмаров, у тебя есть скрипт, есть руки, инструменты, коды которые посоветовали, потестировать слабо ? фантазировать мы все горазды. --- Добавлено --- PHP: ( isset ( $_GET['pg'] ) && (int)$_GET['pg'] > 1 ? (int)$_GET['pg'] : 1 ); модифицируй.. --- Добавлено --- + http://phpfaq.ru/pdo/pdo_wrapper
Просто я запутался когда вы написали по поводу ошибки, но на самом то деле ошибки опасны когда они ведны, но у меня на хостинге к примеру они выключены, даже если будет разрыв запроса никто ничего неувидит. PHP: <?php error_reporting (E_ALL); $result = is_numeric($_GET['id']); if($result){ echo "Число."; } ?> Такой простой код так же выдаст ошибку Notice: Undefined index: id in /storage/emulated/legacy/htdocs/index.php on line 26 Это значит что переменная get не инецеилизирована. Меня интересует вот что, если получаеться ошибки не выводяться на сайте, то такой код тоже можно использовать абсолютно безопасно или это заблуждение, вот это последний вопрос надеюсь
@Unga чтобы не было ошибок, переменную из GET надо извлекать с помощью функции filter_input https://php.ru/manual/function.filter-input.html
У тебя с твоими "понятными" видео всё в кашу - ошибки php, ошибки http и прочее... Тут форумом не обойтись. Лечится только внимательным прочтением книжки
1. Проверяешь передана ли переменная. 2. Проверяешь ее тип и инициализируешь переменную 3. Подготавливаешь запрос типа: $comment = $db->real_escape_string(strip_tags($comment)); Вот и все.
А теги зачем резать? Если их там быть не должно, лучше при выводе через htmlspecialchars пропустить, тогда они вёрстку не поломают
А если я зачем-то захочу в комментарий вставить тег, то ты мне его обрежешь и испортишь комментарий. Вместо того, чтобы просто заэкранировать при выводе