Php get не равен
Здравствуйте..
Я решил попробовать написать свою доску объявлений.
При каждом значении в ГЕТ исполняется своя функция.
if(!isset( $_GET [ «» ])) alltovar ( $rock , $tovarsql , $alltovar , $smarty , $templates ); else echo( ‘Извините, нету данных!’ );
if( $_GET [ «server» ] === «» ) serverall ( $server , $serversql , $servertovar , $smarty , $templates );
if( $_GET [ «client» ] === «» ) clientfun ( $funcclient , $clientfunsql , $clientfun , $smarty , $templates );
if( $_GET [ «core» ] === «» ) core ( $core , $coresql , $coretovar , $smarty , $templates );
if( $_GET [ «geodata» ] === «» ) geodata ( $geodata , $geosql , $geotovar , $smarty , $templates );
if( $_GET [ «web» ] === «» ) web ( $web , $websql , $webtovar , $smarty , $templates );
if( $_GET [ «script» ] === «» ) javascript ( $javascript , $javascriptsql , $javascripttovar , $smarty , $templates );
if( $_GET [ «services» ] === «» ) services ( $services , $servicessql , $servicestovar , $smarty , $templates );
if( $_GET [ «npc» ] === «» ) npc ( $npc , $npcsql , $npctovar , $smarty , $templates );
if( $_GET [ «more» ] === «» ) more ( $more , $moresql , $moretovar , $smarty , $templates );
Собственно , не получается сделать так, что если гет равен чему-то другому, не из этого списка, тогда выполнилась какая-то другая функция.
Проще говоря, предвидеть возможность если человек в адресной строке напишет что-то другое, неизвестное.
Вот не знаю, может как-то через свич можно, пробовал через elseif, но почему-то вообще перестает работать вся конструкция.
Проверка значения PHP $ _GET с использованием оператора if
Я хочу проверить значение переменной GET с помощью оператора if. Вот код, который у меня есть:
if(isset($_GET["v"]) == "test1") < echo 'It worked: test1 loaded'; >if(isset($_GET["v"]) == "test2")
Я хочу иметь возможность изменять содержимое, которое загружается на странице, в зависимости от информации в URL. Подобно тому, как все видео на YouTube находятся в одном файле «просмотра», но имеют послесловие запроса $ _Get, которое определяет, какое видео загрузить: www.youtube.com/watch?v=mNZLhuW8vk
Но это не работает, поэтому я предполагаю, что мое утверждение if испорчено.
3 ответа
isset() возвращает true или false , который не равен «test1», чтобы получить желаемое поведение, вам необходимо оценить фактическое значение $_GET[‘v’] следующим образом:
if(isset($_GET["v"]) && $_GET['v'] == "test1") < echo 'It worked: test1 loaded'; >if(isset($_GET["v"]) && $_GET['v'] == "test2")
if(isset($_GET["v"]) && $_GET['v'] == "test1") < echo 'It worked: test1 loaded'; >else if(isset($_GET["v"]) && $_GET['v'] == "test2")
Или используйте переключатель, когда есть слишком много вариантов
if(isset($_GET["v"])) < switch($_GET["v"]) < case "test1": echo 'It worked: test1 loaded'; break; case "test2": echo 'It worked: test2 loaded'; default: echo 'Not Recognized'; break; >> if(isset($_GET["v"]) == "test1")
Ваше выражение неверно, потому что isset() возвращает логическое значение, а затем вы проверяете строку if(bool == string) всегда ложно
Разбейте ваши условия на 2 отдельных условия, поскольку то, что у вас есть сейчас, всегда будет считаться установленным.
Следующее интерпретируется как: если установлено и равно:
«Х» является представительным значением того, что вы ищете.
$ _GET не равен нулю и возвращает неопределенный идентификатор
Я пытаюсь решить проблему с неопределенным идентификатором, но я не могу. Он говорит мне, что у меня есть неопределенный идентификатор, но если я не использую «isset», программа работает очень хорошо, но мне нужен файл, который выводит информацию вместо:
Notice: Undefined index: id in C:\xampp\htdocs\treeview_v2\load_url_db.php on line 17 Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\treeview_v2\load_url_db.php on line 23 Notice: Undefined variable: url in C:\xampp\htdocs\treeview_v2\load_url_db.php on line 27.
//else // < // echo 'erro. '; //>$a = $_GET['id']; echo $a; read_url($a); function read_url($id) < $rs = mysql_query("select url from dados3 where while($row = mysql_fetch_array($rs)) < $url = $row["url"]; >echo ""; > ?>
PHP INPUT GET не равен строке PHP
Я хочу загрузить некоторые страницы с помощью ввода GET, но когда я пытаюсь сравнить его с if, это не сработает.
http://localhost/?page=%D8%AA%D8%B3%D8%AA_%D9%BE%DB%8C%D8%AC
Затем, когда я пытаюсь использовать код ниже
if($_GET['page']=="%D8%AA%D8%B3%D8%AA_%D9%BE%DB%8C%D8%AC")
в любом случае не работает, но отлично работает с английскими символами.
var_dump($_GET) и посмотреть, с чем вам на самом деле придется играть — edmondscommerce
Начните с регистрации содержимого $_GET[‘page’] чтобы увидеть, что он содержит в обоих случаях. Также убедитесь, что ваш скрипт сохранен в правильной кодировке (UTF-8) — jcaron
Конечно, мы предполагаем, что приведенный выше код не является тем, что вы на самом деле используете, и что вы используете == и не = сравнивать! — jcaron
@jcaron Вероятно, щедрое предположение — RiggsFolly
@jcaron Извините, все, это была опечатка, и это произошло дважды, потому что я скопировал и вставил код. Это был пример, и в реальном мире я использую равный операнд == — Pejman Ghasemi
1 ответы
Во-первых, в PHP вы не можете сравнивать типы данных, используя один = подпишите так: if($_GET[‘page’]=»%D8%AA%D8%B3%D8%AA_%D9%BE%DB%8C%D8%AC»)
Ваш код, скорее всего, будет работать, если вы сделаете это:
РЕДАКТИРОВАТЬ
Следующий код должен работать, я тестировал его на PHP. Пример скрипта PHP
if($_GET['page']=="%D8%AA%D8%B3%D8%AA_%D9%BE%DB%8C%D8%AC")
Ну, это опечатка при написании примера на этой странице, я использую равный == операнд. И ваш ответ не совсем хорош, потому что в этом случае я получу истинный результат, а не ложный; — Пейман Гасеми
Почему бы вам просто не изменить строку запроса страницы, чтобы использовать параметры на английском языке? Или вы могли бы посмотреть на: php.net/manual/en/function.htmlspecialchars.php or php.net/manual/en/function.urlencode.php — Жак Кёкемер
У меня нет проблем, когда я отправляю формы через html с помощью GET и отлично работает. Но когда я ввожу значение в URL-адрес вручную, это не работает. Однако с помощью urlencode можно решить проблему, но когда я хочу проверить оператор if, мне приходится использовать $_GET[‘page’]==»%D8%AA%D8%B3%D8%AA_%D9%BE%DB% 8C%D8%AC» — Пейман Гасеми
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками php or задайте свой вопрос.
PHP INPUT GET не равен строке PHP
Я хочу загрузить некоторые страницы с помощью ввода GET, но когда я пытаюсь сравнить его с if, это не сработает.
http://localhost/?page=%D8%AA%D8%B3%D8%AA_%D9%BE%DB%8C%D8%AC
Затем, когда я пытаюсь использовать код ниже
if($_GET['page']=="%D8%AA%D8%B3%D8%AA_%D9%BE%DB%8C%D8%AC")
В любом случае не работает, но отлично работает с английскими символами.
Начните с регистрации содержимого $_GET[‘page’] , чтобы увидеть, что оно содержит в обоих случаях. Также убедитесь, что ваш скрипт сохранен в правильной кодировке (UTF-8).
Конечно, мы предполагаем, что приведенный выше код — это не то, что вы на самом деле используете, и что вы используете == , а не = для сравнения!
Извините Все, это была опечатка и повторяется дважды, потому что я скопировал и вставил код. Это был пример, и в реальном мире я использую равный операнд ==
1 ответ
Во-первых, в PHP вы не можете сравнивать типы данных, используя один знак = , например: if($_GET[‘page’]=»%D8%AA%D8%B3%D8%AA_%D9%BE%DB%8C%D8%AC»)
Ваш код, скорее всего, будет работать, если вы сделаете это:
Следующий код должен работать, я тестировал его на PHP. Пример скрипта PHP
if($_GET['page']=="%D8%AA%D8%B3%D8%AA_%D9%BE%DB%8C%D8%AC")
Ну, это опечатка при написании примера на этой странице, я использую равный == операнд. И ваш ответ не совсем хорош, потому что в этом случае я получу истинный результат, а не ложный;
Почему бы вам просто не изменить строку запроса страницы, чтобы использовать параметры на английском языке? Или вы можете взглянуть на: php.net/manual/en/function.htmlspecialchars. php или php.net/manual/en/function.urlencode.php
У меня нет проблем. Когда я отправляю формы через html с помощью GET, все работает нормально. Но когда я ввожу значение в URL-адрес вручную, это не работает. Однако с помощью urlencode можно решить проблему, но когда я хочу проверить оператор if, мне приходится использовать $_GET[‘page’]==»%D8%AA%D8%B3%D8%AA_%D9%BE%DB% 8C%D8%AC»