$ _GET и параметры URL и проверка отправленного значения - PullRequest
0 голосов
/ 08 февраля 2012

Я получил две ссылки с параметром со значением. Когда я нажимаю на любую ссылку, она отправляет меня на ту же страницу challenge.php, я хочу найти значение параметра и отобразить страницу в соответствии с тем, какое значение имеет параметр в URL. Этот скрипт не работает.

<a href="http://www.site.com/challenge.php?id=1">Complete Challenge 1</a>
<a href="http://www.site.com/challenge.php?id=2">Complete Challenge 2</a>


$id = $_GET['id'];
if ($id=1) {
        echo "This is challenge 1 completed";
} elseif ($id=2) {
    echo "This is challenge 2 completed";
 else {
    echo "The URL parameters didn't work";
}

Ответы [ 5 ]

1 голос
/ 08 февраля 2012

а что если вы попробуете if ($id == 1)? :) '==' - логический оператор, но я думаю, вы это знаете.

1 голос
/ 08 февраля 2012

При сравнении двух значений используйте оператор сравнения ==, а не оператор присваивания =. Ваш код должен выглядеть следующим образом.

$id = (int)$_GET['id'];

if ($id == 1) {
        echo "This is challenge 1 completed";
} elseif ($id == 2) {
    echo "This is challenge 2 completed";
 else {
    echo "The URL parameters didn't work";
}
1 голос
/ 08 февраля 2012

вы используете = вместо == в условиях

$id = $_GET['id'];
if (1 == $id) {  // you can use === if you want to compare type also
        echo "This is challenge 1 completed";
} elseif (2 == $id) {
    echo "This is challenge 2 completed";
 else {
    echo "The URL parameters didn't work";
}

В условии, если вы используете 1 == $id, это спасет от ошибок $id = 1.В случае, если вы напишите 1 = $id, это выдаст ошибку

0 голосов
/ 08 февраля 2012

Прежде всего, приведите значение $_GET к int:

$id = (int) $_GET['id'];

В ваших условиях вы присваиваете значения переменной $id:

$id = 1

Ошибка есть, вы должны сравнить ее с числами:

$id == 1

Так должно выглядеть:

$id = (int) $_GET['id'];
if ($id == 1) {
        echo "This is challenge 1 completed";
} elseif ($id == 2) {
    echo "This is challenge 2 completed";
 else {
    echo "The URL parameters didn't work";
}
0 голосов
/ 08 февраля 2012

Используйте $ id == 1, иначе вы получите $ id 1.

== выглядит, если он равен, = делает левую переменную правильным значением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...