InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Религия PHP


Ильин С., Журнал "Хакер"


В прошлом номере я тебе рассказал об asp. Надеюсь, что ты осознал всю прелесть этого средства программирования. А сегодня я тебе расскажу о PHP. Ты спрашиваешь - что это? Тогда эта статья для тебя.

А что такое PHP?


PHP - это интерпретируемый язык для создания активных Web-страниц. Он очень похож на Perl и ASP, но на порядок удобнее их. На данный момент Apache с PHP - самый популярный веб-сервер (на мой взгляд, он работает гораздо эффективнее, чем Apache c Perl!). Кроме того, PHP вполне подходит и для создания полноценных кул-хацкерских баз данных в Инете.

Принцип работы


Программу на PHP, подобно скрипту на JavaScript, VBScript или ASP, надо вставлять в HTML-файл. Начало и конец программы отмечаются специальными тегами <?php и ?>. Текст вне этих тегов PHP не воспринимает - он передается Web-браузеру "как есть". Сами скрипты находятся на сервере, и их содержимое посетителю сайта просмотреть невозможно (теоретически невозможно, а практически, особенно хацкеру, возможно все =)). Файлы скриптов должны иметь расширение *.phpX (где X - это номер версии php) или *.phtml, иначе сервер проигнорирует все php-вставки в html-документе. При активизации скрипта серверная программа выполняет все команды php, не трогая html-код, и возвращает результат браузеру юзера. В итоге пользователь имеет обычную страницу, отличающуюся от привычных HTML`ов - лишь расширением.

Как заставить работать php у себя на компе

Если у тебя стоит *nix, то тебе нужно скачать Apache (www.apache.ru) и исходные коды PHP (http://www.php.net/). Затем компилировать Apache и PHP. После этого почитать раздел "QUICK INSTALL" в файле php-3.0.x\INSTALL. Не забудь выполнить все инструкции в этом файле и дописать строчку в конфигурационный файл Apache и прочитать php3.ini, который придется найти в одном из каталогов...

Если же у тебя Windows (Win32), что наиболее вероятно, то я тебе советую для начала поставить старый добрый Personal Web Server от Microsoft'a из дистрибутива OSR2 (или IIS на NT). После инсталляции надо будет внести некоторые изменения в php3.ini, "Окружение" и реестре (это все описано в INSTALL). Далее ты разрешаешь твоему WEB-серверу выполнять CGI из тех каталогов, где будут храниться PHP-файлы. Если при вызове http://localhost/phptest.phtml у тебя промелькивает окошко с терминалом, то это означает, что ты не разрешил WEB-серверу запускать скрипты. Если будет написано "Не могу прочитать входной файл", значит программа php.exe не нашла php3.ini. Если же ты захочешь использовать GD (графическая библиотека для рисования в GIF-файлы), SQL, Cript или другие модули, то тебе нужно будет раскомментировать некоторые строчки в php3.ini. И, главное, придумать, куда скопировать эти DLL`шки, чтобы php.exe нашла их и выполнила php-файл. Я советую положить недостающие DLL в корень WEB-сервера, запретив доступ к DLL-файлам. Также ты можешь пользоваться Header`ом и другими специальными функциями, но это возможно только в случае, когда PHP вкомпилирован в Apache. Пока это возможно только для Apache (Unix). Если появится некий 'PHP.DLL' для Apache (Win32), то и в Windows-сервере можно будет использовать ряд подобных функций.

Синтаксис php3


Синтаксис PHP очень похож на синтаксис таких языков, как Си, Java и perl. Так что если ты знаком с одним из них, то выучить php тебе не составит труда. Да и даже если у тебя не было опыта кодинга в описанных выше языках - расстраиваться не стоит: прочитав эту статью, ты получишь необходимый минимум.

Hello world!


Начнем традиционно. Программа "Hello world!"

<html>
<body>
<?php
echo "Hello, World!";
?>
</body>
</html>

Если сервер правильно настроен, то на экране браузера должна появиться надпись "Hello world". Получилось? Значит пора узнать о переходе от html к php.

Существуют три пути перехода от HTML к коду php:

1. <? echo ("это php-код"); ?>

2. <?php echo ("это php-код"); ?>

3. <script language="php">
echo ("это php-код");
</script>

Самый удобный и распространенный - это 2-ой способ, но в примерах я постараюсь использовать все три.

Кстати, можно использовать и тэги ASP:

4. <% echo ("Тэги ASP"); %>

это так, на всякий случай - может пригодиться.

Написание команд


Команды могут быть написаны внутри тэгов либо по одной, как показано выше (варианты 1, 2 и 3), либо группами, отделяясь друг от друга символом ";" (без кавычек)

<?php
$a = 1;
echo $a;
?>

Лишние символы пробела, табуляции и новой строки игнорируются. Это нужно для того чтобы форматировать блоки программы PHP для большего удобства чтения. Регистр написания имен функций значения не имеет.

Переменные


Имена переменных начинаются с символа $.

<?php
$a = 3;
$A = 7;
?>

Регистр написания имен переменных имеет значение. Так $a и $A - абсолютно разный расклад.

PHP поддерживает следующие типы переменных:

- целое число (Integer);
- двойной точности с плавающей запятой (Double);
- символьная строка (String);
- массив (Array);
- объект (Object);
- Pdfdoc (только если допускается поддержка формата PDF);
- Pdfinfo (только если допускается поддержка формата PDF).

Тип переменной можно не определять. Ибо это потребно лишь в нескольких функциях. Для инициализации (определения) переменной необходимо присвоить ей значение. Это просто, хотя тут есть нюанс:

<?php
$a = 1; - заставляет переменную $a стать переменной типа Integer
$b = 2.3; - заставляет переменную $b стать переменной типа Double
$c = "step"; - заставляет переменную $c стать переменной типа String
?>

 

Комментарии в php


Язык php3 поддерживает комментарии:

<?php
/* комментарий */
// комментарий
?>

Инициализация массивов


Переменная рассматривается как массив, если к ее имени добавляется [значение].

<?php
$a[3] = 10;
?>

Надо также заметить, что элементы массива пронумерованы, начиная с 0, а не 1.

Массив может быть инициализирован двумя способами:

Последовательно присваивая значения

<?php
$a[] = 2; // $a[0] = 2
$a[] = 3; // $a[1] = 3
?>

Или используя конструкцию array().

<?php
$xakep = array('SINtez','SideX', 'Centner', 2poisons',);
?>

Кстати, чтобы узнать количество элементов в массиве, можно воспользоваться функцией count(). Например,

<?php
$xakep = array('Step','Cutter');
print count($xakep);
?>

выдаст 2.

 

Операторы


Вот перечень математических операторов, поддерживаемых php.

<?php
$a = 2 + 1; // Сложение
$b = 2 - 1; // Bычитание
$c = 2 * 1; // Умножение
$d = 2 / 1; // Деление
$e = 2 % 1; // Деление по модулю
$f = ($a + 1) * $b + $c / 3; // Поддержка скобок и порядка операций
?>

Конечно же, php поддерживает логические операторы. Они необходимы для определения "истины" или "лжи" каких-либо условий.

<?php
$a and $b; // И. Истина, если и $a и $b - истинны.
$a or $b; // Или. Истина, если или $a или $b истинны.
$a xor $b; // Исключающее или (либо). Истина, если или $a, или $b истинны, но не оба сразу.
! $a; // Не (отрицание). Истина, если $a - не истинна.
$a && $b; // И. Истина, если и $a, и $b - истинны.
$a || $b; // Или. Истина, если или $a, или $b истинны.
?>

Не забудь про операторы сравнения, позволяющие сравнивать два значения.

<?php
$a == $b; // Равно. Истина, если $a равно $b.
$a != $b; // Не равно. Истина, если $a не равно $b.
$a < $b; // Меньше. Истина, если $a - строго меньше, чем $b.
$a > $b; // Больше. Истина, если $a строго больше, чем $b.
$a <= $b; // Меньше или равно. Истина, если $a - меньше или равно $b.
$a >= $b; // Больше или равно. Истина, если $a больше или равно $b.
?>

Циклы


В php используется 2 вида циклов.

1. C использованием команды for

<?php
for ($i = 1; $i < 4; $i++) {
print "I read this magazine $i days.\n"; }
?>

2. C использованием while.

$i = 1; while ($i < 4) {
print "I have eaten $i bagels today.\n";
$i++;
}

Результат обоих примеров одинаковый:

I read this magazine 1 days.

I read this magazine 2 days.

I read this magazine 3 days.

Cookies


Для создания и модификации куки в php используется функция setcookie(). При обращении к этой функции можно использовать разное количество передаваемых ей аргументов. Вот пример обычной куки.

setcookie('name', 'Step'); // создается кука name со значением Step

А вот если тебе понадобится, чтобы кука исчезла в определенное время, то надо использовать третий аргумент при обращении к функции setcookie - количество секунд от начала 1.01.1970 до момента ее удаления (во, маразм!). Могу тебя порадовать: самому тебе секунды считать не придется, потому что в php для это есть специальная функция mktime(). Вот примерчик с кукисом, который должен исчезнуть в начале 2002 года.

<?php
$kick = mktime(0,0,0,1,1,2002);
// использование mktime - mktime (час, минуты, секунды, число, месяц, год)
setcookie('name', 'step', $kick);
?>

Дополнительная инфа по PHP

http://www.php.net/

Это сайт-легенда. Если ты знаешь английский, то тебе, в принципе, никакие другие сайты и не понадобятся. Самый подробный и лучший (!) учебник по php. Советую...

http://php3.agava.ru

Отличный сайт о php. Описание, уроки, скрипты, форум, статьи, ссылки. В общем, must visit!

http://www.phpclub.dp.ua/

Клуб php-программистов! Куча документации, статей, ссылок и хороший форум.

Это далеко не полный список. Если ты чего-нибудь не нашел, то иди на www.list.ru. И по разделам: компьютеры->программирование->веб-программирование->PHP. Там будет ОГРОМНАЯ коллекция ссылок на php ресурсы с русским описанием. Так что могу тебя заверить, там ты найдешь все, что тебе надо.

Выводы, выводы...


Из этой статьи ты можешь почерпнуть лишь азы php-программирования и понять, что собой представляет этот самый php. Я рассказал лишь об элементарных вещах. Хотелось бы рассказать больше, но, увы, - не могу, потому что про php можно писать и писать (так никакого журнала не хватит). Так что если ты надумал продолжать изучать этот язык программирования, то могу посоветовать бежать на вышенаписанные сайты и черпать оттуда инфу для продолжения своего сегодняшнего начинания.

Ты не собираешься заниматься web-кодингом и считаешь, что программирование вообще на фиг не нужно хацкеру? А ты глянь: сколько сейчас развелось ДЫРЯВЫХ php-скриптов, с помощью которых можно натянуть любой незащищенный сервак. И если ты захочешь таки порутить систему через рассматриваемые уязвимые скрипты, то без минимальных знаний, подаренных статьей, - однозначно не обойтись!

Ну да ладно, бывай. И до встречи на php-форумах и irc-php-каналах.


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua