Переменные $_GET и $_POST в PHP используются для получения информации из формы, например, ввода пользователя.
Важно отметить, что при обработке форм HTML PHP может автоматически делать элементы формы со страницы HTML доступными для сценариев PHP.
В приведенном ниже примере содержится HTML-форма с двумя полями ввода и кнопкой отправки.
<html><head><metacharset="utf-8"><title>Сеть исходного кода (downcodes.com)</title></head><body> <formaction="welcome.php" Method="post" > Имя: <inputtype="text"name="fname">Возраст: <inputtype="text"name="age"><inputtype="submit"value="submit"></form> </body>< / html>
Когда пользователь заполняет вышеуказанную форму и нажимает кнопку отправки, данные формы будут отправлены в файл PHP с именем «welcome.php»:
Добро пожаловать<?phpecho$_POST["fname"]; ?>!<br>Ваш возраст <?phpecho$_POST["age"];
Мы объясним переменные $_GET и $_POST в PHP в следующей главе.
В следующем примере мы устанавливаем три параметра для раскрывающегося меню. Форма использует метод GET для получения данных. Если значение атрибута действия пусто, это означает, что оно передается в текущий скрипт. раскрывающееся меню через атрибут имени select:
<?php$q= isset($_GET['q'])? htmlspecialchars($_GET['q']): '';if($q){ if($q=='CODERCTO'){ echo' Сеть исходного кода<br>http://www.downcodes.com'; }elseif($q=='GOOGLE'){ echo'Поиск Google<br>http://www.google.com'; }elseif($q=='TAOBAO'){ echo'Taobao<br>http://www.taobao.com' }}else{?><formaction=""method="get"> <selectname="; q"> <optionvalue="">Выберите сайт:</option> <optionvalue="CODERCTO">codercto</option> <optionvalue="GOOGLE">Google</option> <optionvalue="TAOBAO">Taobao</option> </select> <inputtype="submit"value="submit"> </form><?php}?>
Если раскрывающееся меню имеет множественный выбор (multiple="multiple"), мы можем получить его, установив select name="q[]" в виде массива. Следующий код отправляется с помощью POST. Код выглядит следующим образом:
<?php$q= isset($_POST['q'])? $_POST['q']: '';if(is_array($q)){ $sites= array( 'CODERCTO'=> 'Исходный код Сеть: http://www.downcodes.com', 'GOOGLE'=> 'Поиск Google: http://www.google.com', 'TAOBAO'=> 'Taobao: http://www.taobao.com', ); foreach($qas$val){ //PHP_EOL — константа, используемая для разрывов строк echo$sites[$val]. PHP_EOL]. }else{?><formaction; =" "method="post"> <selectmultiple="multiple"name="q[]"> <optionvalue="">Выберите сайт:</option> <optionvalue="CODERCTO">codercto</option> <optionvalue="GOOGLE">Google</option> <optionvalue="TAOBAO">Taobao</option> </select> <inputtype="submit"value="Submit"> </form><?php}?>
Значения атрибута name в форме переключателя PHP совпадают, но значения значений различны. Код выглядит следующим образом:
<?php$q= isset($_GET['q'])? htmlspecialchars($_GET['q']): '';if($q){ if($q=='CODERCTO'){ echo' Сеть исходного кода<br>http://www.downcodes.com'; }elseif($q=='GOOGLE'){ echo'Поиск Google<br>http://www.google.com'; }elseif($q=='TAOBAO'){ echo'Taobao<br>http://www.taobao.com' }}else{?><formaction=""method="get"> <inputtype="; radio"name="q"value="CODERCTO"/>codecto <inputtype="radio"name="q"value="GOOGLE"/>Google <inputtype="radio"name="q"value="TAOBAO"/>Taobao <inputtype="submit"value="submit"></form><?php}?>
Флажок PHP-флажка может выбирать несколько значений:
<?php$q= isset($_POST['q'])? $_POST['q']: '';if(is_array($q)){ $sites= array( 'CODERCTO'=> 'Исходный код Сеть: http://www.downcodes.com', 'GOOGLE'=> 'Поиск Google: http://www.google.com', 'TAOBAO'=> 'Taobao: http://www.taobao.com', ); foreach($qas$val){ //PHP_EOL — константа, используемая для разрывов строк echo$sites[$val]. PHP_EOL]. }else{?><formaction; =" "method="post"> <inputtype="checkbox"name="q[]"value="CODERCTO">codercto<br> <inputtype="checkbox"name="q[]"value="GOOGLE">Google<br> <inputtype="checkbox"name="q[]"value="TAOBAO">Taobao<br> <inputtype=" submit"value="submit"></form><?php}?>
Мы должны проверять вводимые пользователем данные (с помощью клиентского сценария), когда это возможно. Проверка браузера происходит быстрее и снижает нагрузку на сервер.
Если пользовательский ввод необходимо вставить в базу данных, вам следует рассмотреть возможность использования проверки на сервере. Хороший способ проверить форму на сервере — передать данные формы на текущую страницу (лучше асинхронную отправку), а не переходить на другую страницу. Таким образом, пользователи могут получать сообщения об ошибках на той же странице формы. Пользователям будет легче находить ошибки.