|
<?php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>PHP. Шаг за шагом.</title>
<meta content="text/html; charset=Windows-1251" http-equiv=Content-Type>
</head>
<LINK REL=STYLESHEET HREF="php.css" TYPE="text/css">
<body text=black bgcolor=white link=blue vlink=blue alink=red>
<center>
<a name="top">
<TABLE borderColor=#000000 cellSpacing=1 cellPadding=1 width=600 border=0 align="center">
<tr><td>
<tr><td>
<h1>ШАГ 4. ИЛИ ПРЫЖОК НА МЕСТЕ</h1>
<p>Мы продолжаем наш концерт, а за одно и рассматривать основы PHP. Сегодня начнем с внешних переменных.</p>
<h2>HTML Формы (GET и POST)</h2>
<p>После заполнения пользователем HTML формы PHP может получить доступ к этим данным через переменные, имеющие такие-же название, что и поля в форме. Как всегда продемонстрирую на примере:</p>
<div class=code>
<form action="foo.php3" method="post"><br>
Name: <input type="text" name="name"><br>
<input type="submit"><br>
</form>
</div>
<p>Значит после того, как пользователь нажмет в форме кнопку <code>submit</code> в php-скрипт <code>foo.php3</code> методом <code>post</code> передадутся данные из формы, а обратиться, например к текстовому полю, из этого скрипта можно будет через переменную <code>$name</code>. Кроме того, можно использовать и массивы в качестве названий полей.</p>
<div class=code>
<form action="array.php" method="post"><br>
Name: <input type="text" name="personal[name]"><br>
Email: <input type="text" name="personal[email]"><br>
Beer: <br>
<select multiple name="beer[]"><br>
<option value="warthog">Warthog<br>
<option value="guinness">Guinness<br>
</select><br>
<input type="submit"><br>
</form>
</div>
<p>В результате это скрипт (<code>array.php</code>) может вывести полученные результаты так:</p>
<div class=code>
echo "Имя: ".$personal["name"];<br>
echo "Email: ".$personal["email"];<br>
for ($i=0;$i<sizeof($beer);$i++)<br>
echo $beer[$i]."<br>";
</div>
<p>Кроме этого, как известно в форме в качестве submit-кнопки можно применять картику <code><input type=image src="image.gif" name="sub"></code>. В таком случаем скрипту возвращаются еще две дополнительных переменных, содержащих координаты точки, на которой кликнули мышкой. Это <code>sub_x</code> и <code>sub_y</code>.</p>
<h2>HTTP Cookies</h2>
<p>В PHP реалиован также простой способ работы с куками. С помоью функции SetCookie() можно их устанавливать, получать значения, как и в случае с формами - по имени переменной. В случае, если вы ожидаете получить несколько значений от куки имеет резон исопльзовать в качестве имени переменной - массив. Как в следующем примере.</p>
<div class=code>
SetCookie ("MyCookie[]", "Testing", time()+3600);
</div>
<p>Существует только одно небольшое ограничение. Так-как куки - это часть HTTP заголовка их следует посылать самыми первыми. То есть грубо говоря, ваш скрипт должен начинаться с установки куки, а потом уже заниматься выводом html кода. Еще один пример, уже полноценного счетчика:</p>
<div class=code>
$Count++;<br>
SetCookie ("Count", $Count, time()+3600);<br>
SetCookie ("Cart[$Count]", $item, time()+3600);<br>
</div>
<h2>Переменные окружения</h2>
<p>И тут все так-же просто. Хотите узнать домашний каталог? В юникс-системах этообычно переменная окружения с именем HOME. Так узнавайте:</p>
<div class=code>
echo $HOME;
</div>
<p>Вы также можете работать с переменными окружения через функции <code>getenv()</code> и <code>putenv()</code></p>
<h2>КОНСТАНТЫ</h2>
<p>Вы можете использовать не только переменный но и константы с помощью функции <code>define()</code>. Взгляните на следующий пример:</p>
<div class=code>
define("CONSTANT", "Hello world.");
echo CONSTANT;
</div>
<p>обратите внимание на то, что перед именем константы не пишется символа переменной <code>$</code> и это правильно.</p>
<ul>Ну и напоследок список предопределенных констант.
<li><code>__FILE__</code> Имя файла выполняемого скрипта.
<li><code>__LINE__</code> Колличество линий, инетрптетированный на данный момент в этом скрипте.
<li><code>PHP_VERSION</code> Тут хранится версия PHP. Например: '3.0.8-dev'.
<li><code>PHP_OS</code> Имя операционной системы, на которой выполняется PHP-скрипт.
<li><code>TRUE</code> Истина.
<li><code>FALSE</code> Ложь.
<li><code>E_ERROR</code> Описывает случившуюся ошибку, продолжение работы после которой невозможно.
<li><code>E_WARNING</code> Описывает ошибку, после которой продолжается выполнения скрипта.
<li><code>E_PARSE</code> Описывает синтаксическую ошибку, рпи разоре интерпретатором текста скрипта.
<li><code>E_NOTICE</code> Просто какое-то сообщения от интерпретатора. Возможно ошибка, а возможно и нет.
</ul>
<p>Вот и все о константах и переменных. Со следующего шага займемся опарторами и выражениями.</p>
<p class=sign>Удачи!</p>
</td></tr>
<tr><td id="menu" class=menu>
<center><a href=#top class=menu>ВВЕРХ</a></center><br>
<center><a href=php3.html class=menu><<<предыдущий шаг</a>
<a href=php5.html class=menu>следующий шаг>>></a>
</center></td></tr>
</TABLE>
</div>
</body>
</html>
?>