2009-12-24 5 views
0

Можно ли рассказать, что происходит в этой программе? Мое одно основное сомнение касается 1-го условия, откуда мы получим метод REQUEST_METHOD. Я имею в виду, что программа находится в 1-м цикле, поэтому REQUEST_METHOD == GET, но где мы его настраиваем.Справка по программе PHP

<html> 
<head><title>Temperature Conversion</title></head> 
<body> 
<?php 
if ($_SERVER['REQUEST_METHOD'] == 'GET') 
{ 
?> 
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST"> 
Fahrenheit temperature: 
<input type="text" name="fahrenheit" /> <br /> 
<input type="submit" name="Convert to Celsius!" /> 
</form> 
<?php 
} 
elseif ($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
    $fahr = $_POST['fahrenheit']; 
    $celsius = ($fahr - 32) * 5/9; 
    printf("%.2fF is %.2fC", $fahr, $celsius); 
} 
else 
{ 
    die("This script only works with GET and POST requests."); 
} 
?> 
</body> 
</html> 

Еще раз просто сказать спасибо

ответ

0

Это странный способ использования того же файла PHP для отображения и обработки почтовых запросов.

  1. Разработчик предполагает первый проход страницы будет «GET» запрос на странице
  2. Тогда кто-то заполняет форму и сообщения обратно в тот же PHP файл где значение является обрабатываются и температуры распечатываются на экране
  3. Он также улавливает, если кто-то делает другой тип вызова на страницу, такие как «голова» запрос.
+0

Это действительно не так странно, просто старый. Это был действительно общий стиль, чтобы сделать это в php3 и действительно раннем 4. Но да, теперь это действительно странно. –

+0

Когда я работал в этих версиях, я использовал отдельный файл php для обработки этого действия, вместо того, чтобы перегружать такую ​​страницу. – Myles

+0

Хе-хе, может быть, это был только я. Я не буду притворяться, что тогда был отличным программистом :) –

1

GNG? (EDITED: из цитаты вопроса: я имею в виду, что программа является gng в 1-м ..)

REQUEST_METHOD будет GET, если вы введете страницу по URL-адресу.

Когда вы отправляете форму, метод метода метода формы = POST, поэтому, отправив себе, REQUEST_METHOD будет POST.

+0

это то, что мы установили по умолчанию? Я имею в виду REQUEST_METHOD == GET – Josh

+0

@joetsuihk: GNG ?! @Nishant: Нет, это всегда * GET. –

+0

Нет, его задает сервер. – Brad

0

Его комплект по оригинальному запросу. Сервер заполняет эту информацию (то есть $ _SERVER) для вас, так что у вас есть доступ к данным запроса и сервера из PHP. Если запрос поступает через HTTP GET, значение GET. Если его POST, значение POST и т. Д.

0

Метод запроса относится к методу, используемому для «запроса» страницы браузером.

Если доступ к странице осуществляется простым перемещением по URL-адресу, используется метод GET. Следовательно, если страница, которую вы перечислите, просматривается в вашем браузере, REQUEST_METHOD == GET и на этой странице отображается форма.

Метод запроса POST обычно используется, когда к странице обращаются через форму отправки. Таким образом, как только пользователь заполняет форму на своей странице и отправляет ее, они возвращаются на ту же страницу, но через метод запроса POST. Затем на странице отображается немного информации, основанной на представлении формы.

См. Request Methods в Википедии для получения дополнительной информации о методах запроса. Дополнительную информацию о переменных сервера см. В разделе PHP docs on $SERVER.

0

Эта программа обрабатывает HTTP-запрос. Массив $ _SERVER автоматически устанавливается со значениями.

$ _SERVER ['REQUEST_METHOD'] будет равно 'GET', если кто-то просто посещает страницу в браузере.

Он будет равен «POST», если они попадут на страницу после отправки формы.

0

GET и POST - это http-глагол, используемый для доступа к странице. Обычно мы используем POST для отправки данных пользователя на сервер и использования GET для получения данных с сервера. Поэтому прошу указать индекс.html - это запрос GET, но POSTing данные на что-то вроде формы комментариев, отправляя данные обратно на сервер, использует POST.

Это один из способов использования только одного файла для обработки форм в php. Когда человек впервые обратится к форме, он будет использовать GET. Но когда пользователь отправляет данные и нажимает кнопку «Отправить», он отправляет данные пользователя в POST. Таким образом, первое условие if = 'GET'.

Попробуйте this link, чтобы узнать больше о GET и POST

0

Ok. Таким образом, потому что я видел только один человек, выйти и сказать, я думаю, я должен буду:

$_SERVER, $_POST, $_GET и большинство других переменных, которые начинаются с $_ называются «предопределенных переменных» или «суперглобальные» , Это переменные, которые задаются сервером и могут быть доступны в любом контексте. Они хранят информацию на основе времени выполнения сервера, запроса и т. Д.

$_SERVER['REQUEST_METHOD'] определяет способ, которым пользователь добрался до вашей страницы. Есть пучок, такой как HEAD, GET, POST, DELETE, и я верю еще нескольким. Каждый из них имеет определенную цель, выложенную интернет-HTTP-стандартами. GET - это метод запроса, который используется чаще всего, поскольку он используется, чтобы просто получить страницу. Если вы не представили форму, скорее всего, это тот метод, который вы используете.

Что вы делаете, это проверка того, что пользователь просматривает страницу регулярно, и если это она, она дает им форму. Когда вы нажимаете кнопку отправки в форме, вы меняете свой метод запроса на POST для следующей страницы, что означает, что вы передаете на сервер какую-то информацию, в этом случае данные, которые находятся в полях формы.

Если страница обнаруживает, что кто-то отправляет форму, она затем отправляет и производит расчеты исходя из того, что пользователь отправил через форму.

Как правило, большинство людей просто проверяют, есть ли какие-либо данные, содержащиеся в $_POST, чтобы узнать, была ли отправлена ​​форма, но этот метод работает.

Смежные вопросы