Поиск

Ввод данных вручную

Необязательно передавать данные в сценарий только через HTMLформу, иног да возникает необходимость сделать это вручную. Если вы создали сценарий, печатающий имя пользователя в приветствии, вы можете создать переменную, которая содержит имя отдельно от приветствия. В этом случае легко изменить имя, не меняя приветствия, инструкцию print или сам сценарий. Напишем PHPсценарий, чтобы наглядно показать этот процесс.

Создание РНРсценария, выводящего на экран приветствие
  1. Создайте новый документ в текстовом редакторе.
  2. <HTMLxHEADxTITLE>Using Variables</TITLEx/HEADxBODYx?php
    /* Эта страница может содержать строки с операторами print. */

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

    print ("<H2xCENTERxB>Hello, $FirstName.</Bx/CENTERx/H2xBR>\n") ;
    /* Эта страница может содержать дополнительный код после оператора
    —print. */
    ?> </BODYx/HTML>
  3. Сохраните документ (листинг 3.5) в файле с именем hetlo.php и загрузите его на сервер.

Листинг 3.5 т Вместо написания страницы, автоматически выдающей при ветствие «Hello, World!» или «Hello, Larry!», мы создали динамическую страни цу, напечатав значение переменной Теперь, как только изменится значение, вид результирующей страницы станет иным.

1. <HTML>
2. <HEAD>
3. <TITLE>Using Variables</TITLEx/HEAD>
4. <BODY>
5. <?php

6. /* Эта страница может содержать.строки с операторами print. */
7. print ("<H2xCENTER><B>Hello, $FirstName.</Bx/CENTERx/H2xBR>\n") ;
8. /* Эта страница может содержать дополнительный код после оператора print. */
9. ?>
10. </BODY>
11. </HTML>

Если вы просмотрите сценарий через браузер, то увидите на экране только запись "Hello, . " , так как переменная $FirstName не имеет значения. Есть два способа вручную задать это значение, без применения форм. Первый исполь зовать знание того, как метод GET передает данные в сценарий.

Использование метода СЕТ без HTMLформы
  1. Просмотрите сценарий hello.php в Webбраузере, зайдя по соответству ющему адресу URL (в нашем случае это http://www.DMCinsights.com/ php/hello.php (рис).
  2. Добавьте в конец URL текст ?FirstName = Larry (можете указать свое имя, главное, чтобы не было пробелов). Выше в данной главе («Получение дан ных из формы в РНР»), когда вы посылали переменную в сценарий через URL (то есть использовали метод GET в HTMLформе), мы уже использо вали этот формат www.url.com/script.php?variable=value.
  3. Перезагрузите страницу в браузере с новым адресом URL (рис).

Если вы не видите адрес в окне браузера, значит, была допущена ошибка. Проверьте наличие вопросительного знака " ?", отделяющего адрес файла от данных. Потом убедитесь в том, что правильно набрали переменную FirstName (учтите, что f irstname совсем другая переменная).

Второй способ предварительного присвоения значения переменной на прямую в сценарии.

Присвоение значения переменной

  1. Откройте файл hello.php в текстовом редакторе.
  2. На строке перед инструкцией print добавьте запись $FirstName =" Jude" , (листинг 3.6).
  3. Листинг 3.6 т Строка $FirstName = "Jude"; задает значение "Jude" пере менной "FirstName" для этой страницы.

    1. <HTML>
    2. <HEAD>
    3. <TITLE>Using Variables</TITLEx/HEAD>
    4. <BODY>
    5.<?php
    6.$FiretName , "Jude";
    7./* Эта страница может содержать строки с операторами print. */
    8.print ("<H2xCENTERxB>Hello, $FirstName</Bx/CENTERx/H2xBR>\n") ;
    9./* Эта страница может содержать дополнительный код после оператора print.*/
    10. ?>
    11. </BODY>
    12. </HTML>
  4. Сохраните страницу, загрузите ее на сервер и просмотрите с помощью браузера (рис.).
  5. А теперь просмотрите эту страницу с помощью измененной версии URL, как это было сделано в последнем примере (http://www.DMCinsights.com/ php/hello.php?FirstName=Larry^ рис.

Становится понятно, что происходит, когда переменной многократно при сваиваются значения: только последнее присвоенное значение сохраняется в переменной и выводится на экран в сценарии hello .php. Будьте вниматель ны, чтобы не присвоить значение какойнибудь переменной многократно! Способ предварительного присвоения значений переменным становится более значимым по мере расширения и усложнения программы. Использова ние легко редактируемых переменных означает, что вам никогда не потребует ся искать их в многочисленных строках кода для смены значения.

Таким же образом, добавив переменную к URL, можно связать одну страницу с другой динамически генерируемой страницей (такой как hello.php). Это мож но сделать, просто включив в ссылки на вашей Webстранице значения перемен ных, где необходимо. Например, формой на Webсайте может быть взято имя пользователя, которое затем передается на следующие связанные с формой стра ницы с помощью кода <А HREF = "hello.php?FirstName=Larry">hello.php</A>.

Если вы используете метод GET для передачи данных в сценарий, вы можете пе ресылать многочисленные значения, разделив пары variable=value (например, FirstName=Larry) с помощью амперсанда (&). Поэтому измененный адрес URL может выглядеть как hello.php?FirstName=Larry&LastName=Ullman.
Пробелы внутри значений, передаваемых как часть URL, должны быть заменены на знак плюс (+). В главе 5 обсуждается, как РНР может автоматически подгото вить строку текста для передачи как части URL.
Хотя приведенный здесь пример задание значения имени пользователя может быть не очень практичным, создание переменной с адресом электронной почты в начале сценария позволит вам легко изменить адрес без необходимости искать его среди многочисленных строк кода. В главе 11 мы постоянно будем устанавли вать параметры доступа в базу данных через переменные в начале сценариев, чтобы их можно было легко менять без необходимости вносить изменения во всех местах, где используются эти значения.