PHP получает параметр получает неправильные значения
Я пытаюсь ввести параметр URL-адреса и использовать его, чтобы определить, какую информацию отображать на странице, но по какой-то причине информация читается неправильно. Первое, что я делаю, это проверяю указанный ниже параметр и присваиваю его $page
<?php
if(isset($_GET["page"])) {
$page=$_GET["page"];
}
?>
Затем я проверяю, равняется ли $page 2 или 3. По какой-то причине, если я отображаю $page, я получаю правильное значение параметра, но он отображает неверную информацию.
<?php
if(isset($page) == '2') { ?>
DISPLAY INFO A
ECHO $PAGE RETURNS 2
<?php } elseif(isset($page) == '3') { ?>
DISPLAY INFO B
ECHO $PAGE RETURNS 3
<?php } else { something here } ?>
По какой-то причине, даже если $page возвращает 3, я получаю INFO A, который должен отображаться на странице 2. Я неправильно перетаскиваю параметр? URL выглядит так:
feed.php?page=3
4 ответа
PHP isset
возврат функции Boolean
, Вы должны изменить код на:
<?php
if(isset($page) && $page== '2') {
?>
DISPLAY INFO A
ECHO $PAGE RETURNS 2
<?php } elseif(isset($page) && $page== '3') { ?>
DISPLAY INFO B
ECHO $PAGE RETURNS 3
<?php } else { something here } ?>
if($page == '3')
Почему isset()
? Вы уже делаете это, когда назначаете это. Может быть, это также:
if(isset($_GET["page"])) {
$page = $_GET["page"];
} else {
$page = '0'; // or something
}
Это не верно:
if(isset($page) == '2') {
Так должно быть
if( $page == '2') {
Это будет только работать на странице 1
, так как isset($page)
возвращается true
, который правдиво превращается в 1
, isset()
Функция только для проверки, была ли переменная установлена или нет
isset()
вернуть TRUE/FALSE, но вы сравниваете его с обычными целыми числами. логический TRUE
в MySQL эквивалентно целому числу 1
, но не пройдут остальные ваши тесты. Тебе нужно иметь:
if (isset($_GET['page'])) {
if ($_GET['page'] == 1) { ... 1 stuff }
else if ($_GET['page'] == 2) { ... 2 stuff }
}