Релігія PHP, PHP, Програмування, статті

Ільїн С., Журнал “Хакер”

У минулому номері я тобі розповів про asp. Сподіваюся, що ти усвідомив всю принадність цього засоби програмування. А сьогодні я тобі розповім про PHP. Ти запитуєш – що це? Тоді ця стаття для тебе.

А що таке PHP?

PHP – це інтерпретована мова для створення активних Web-сторінок. Він дуже схожий на Perl і ASP, але на порядок зручніше їх. На даний момент Apache з PHP – найпопулярніший веб-сервер (На мій погляд, він працює набагато ефективніше, ніж Apache c Perl!). Крім того, PHP цілком підходить і для створення повноцінних кул-хацкерскіх баз даних в Інеті.

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

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

Як змусити працювати php у себе на компі

Якщо у тебе стоїть * nix, то тобі потрібно завантажити Apache (www.apache.ru) і вихідні коди PHP (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-файли. Якщо при виклику 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.

2.

3. <script language="php">
echo (“це php-код”);
</script>

Найзручніший і найпоширеніший – це друга спосіб, але в прикладах я постараюся використовувати всі три.

До речі, можна використовувати і теги 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

www.php.net/

Це сайт-легенда. Якщо ти знаєш англійська, то тобі, в принципі, ніякі інші сайти і не знадобляться. Самий детальний і кращий (!) підручник з php. Раджу …

php3.agava.ru

Відмінний сайт про php. Опис, уроки, скрипти, форум, статті, посилання. Загалом, must
visit!

www.phpclub.dp.ua/

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

Це далеко не повний список. Якщо ти чогось не знайшов, то йди на www.list.ru. І за розділами: Там буде ВЕЛИЧЕЗНА колекція посилань на php ресурси з російським описом. Так що можу тебе запевнити, там ти знайдеш все, що тобі треба.

Висновки, висновки …

З цієї статті ти можеш почерпнути лише ази php-програмування і зрозуміти, що собою представляє цей самий php. Я розповів лише про елементарні речі. Хотілося б розповісти більше, але, на жаль, – не можу, тому що про php можна писати і писати (так ніякого журналу не вистачить). Так що якщо ти надумав продовжувати вивчати цю мову програмування, то можу порадити бігти на вишенапісанного сайти і черпати звідти інфу для продовження свого сьогоднішнього починання.

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

Ну да ладно, бувай. І до зустрічі на php-форумах і irc-php-каналах.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*