У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


сторінки. В цьому випадку може бути використана змінна $REMOTE_USER щоб ідентифікувати зовнішньо-пізнаного користувача.

Зверніть увагу, проте, що вищезгадане не захищає від кого - те, хто може управляти не-аутифікованим URL використовуючи перехоплений пароль з аутифікованих URL на тому ж самому сервері.

І Netscape і Internet Explorer очистить локальний кеш вікна аутифікації після отримання відповіді серверу 401. Це ефективно як міра відключення KopHCTyBa4iB("log"), що вимушує їх повторно ввести їх username і пароль. Деякі використовують це для відключення користувача після закінчення інтервалу часу('Чіте"), або забезпечують кнопку "Log Out".

Ці методи не потрібні відповідно до Основного стандарту аутифікації HTTP, так що Ви ніколи не повинні залежати від цього. Тестування з Lynx показало, що Lynx не очищає інформацію аутификації з 401 відповіддю серверу, так що перехід назад і потім вперед знову відкриє ресурс (поки вимоги посвідчення особи не змінилися).

Також звернете увагу, що це не працює при використовуванні серверу Microsoft's US і CGI версії РНР через обмеження IIS.

Створення GIF-файлів за допомогою РНР

РНР не обмежений створенням тільки HTML висновку. Він може також використовуватися для створення файлів GIF, або навіть більш

зручні потоки зображень GIF. Для цього вам треба скомпілювати РНР з бібліотекою функцій зображення - GD .

Приклад 2-2. Створення GIF-файлів за допомогою РНР

<?php

Header("Content-type: image/gif');

$string=implode($argv," ");

Sim = imagecreatefromgif("images/buttonl.gif);

Sorange = ImageColorAllocate($im, 220, 210, 60);

$px = (imagesx($im) -7.5*strlen($string))/2;

ImageString($im,3 ,$px,9,$string,$orange);

ImageGif($im);

ImageDestroy($im); ?>

Цей приклад викликається із сторінки тегом: <img src="button.php3?text"> Вищезазначений скрипт button.php3 берет рядок "text", накладає зверху на основне зображення, яким в цьому випадку є " images/buttonl.gif" і виводить виникаюче в результаті зображення. Це - дуже зручний спосіб не малювати нові зображення кнопки, кожного разу, коли ви хочете змінити текст кнопки. Цим методом вони динамічно згенерують.

Підтримка file upload

РНР може приймати файли, завантажені з будь-якого браузера, що відповідає стандартам RFC-1867 (якими є, наприклад, Netscape Navigator 3 або старше, Microsoft Internet Explorer 3 з виправленнями від Microsoft, або старше). Ця можливість дозволяє людям завантажувати файли. З РНР-аутификацией і функціями маніпулювання файлами, ви маєте повний контроль над тим, кому

дозволяти завантажувати файли і що повинно бути виконано з файлом, якщо він був завантажений.

Екран завантаження файлу може бути організований створенням спеціальної форми, яка виглядає приблизно так:

Приклад 2-3. Форма завантаження файлу

<FORM ENCTYPE='Wltipart/form-data" ACTION="_URL_"

METHOD=POST>

<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000">

Send this file: <INPUT NAME="userfile" TYPE="file">

<INPUT TYPE="submit" VALUE="Send File">

</FORM>

_URL_ повинен вказати на php html файл. Приховане поле

MAX_FILE_SIZE повинне передувати полю введення файлу і означає

максимально допустимий розмір файлу. Значення визначається в

байтах. Для цього файлу при успішному завантаженні будуть визначені

наступні змінні : $userf!le - Тимчасове ім'я файлу під яким

завантажений файл завантажується в машину серверу.

$userfile_name - Початкове ім'я файлу в системі відправника. $userfile_size - Розмір завантаженого файлу в байтах.

$userfile_type - Тип МІМЕ файлу, якщо броузер надав цю інформацію. Наприклад може бути "image/gif". Зверніть увагу, що компонент вищезазначених змінних "$userfile" - це будь-яке значення поля Name тега INPUT з TYPE=file позначене у формі завантаження. В приведеному вище прикладі форми завантаження ми назвали його "userfile".

За умовчанням файли будуть збережені в заданому за умовчанням тимчасовому каталозі серверу. Його можна змінити, установкою змінного середовища TMPDIR в середовищі, в якому РНР виконується. Хоча, використовування при її установці обігу PutEnv () зсередини сценарію РНР не працюватиме.

Скрипт РНР, який одержує завантажений файл, повинен визначити, що повинно бути виконано із завантаженим файлом. Ви можете, наприклад, використовувати змінну $file_size, щоб відкинути будь-які файли, які є або дуже маленькими або дуже великими. Ви могли б використовувати змінну Sfilejype, щоб відкинути будь-які файли, які не відповідають деяким критеріям типу. У будь-якому випадку, ви повинні або видалити файл з тимчасового каталога або перемістити його в інше місце. Файл буде видалений з тимчасового каталога в кінці запиту, якщо він не переміщений або перейменований.

Будь ласка звернете увагу, що веб-сервер CERN httpd, здається, видаляє те, що все починається з першого пропуску в заголовку content-type mime, одержаному від клієнта. Поки справа йде так, CERN httpd не підтримуватиме можливість завантаження файлу.

Підтримка HTTP cookie

РНР підтримує HTTP cookies. Cookies - механізм для збереження даних у даному браузері і, таким чином, - трекінг або ідентифікація користувачів. Ви можете встановлювати файли cookie використовуючи функцію setcookieQ. Cookies - частина HTTP заголовка, так що функція SetCookie() повинна викликатися перш ніж браузеру послана яка-небудь інформація для висновку. Це - те ж саме обмеження, яке торкається і функції Header().

Любимий ой cookie, посланий Вам від клієнта буде автоматично перетворений на змінну РНР так само як дані методів GET і POST. Якщо ви бажаєте призначити множинні значення одиночному cookie -просто додайте [] до імені cookie. Для більш докладної інформації див. функцію setcookie ().

Підтримка баз даних

РНР підтримує ряд різних баз даних, і в режимі роботи у власній системі команд і через ODBC, включаючи:

Adabas D

MySQL dBase

Oracle Empress

PostgreSQL FilePro

Solid Informix

Sybase InterBase

Velocis mSQL

Unix dbm Регулярні вирази

Регулярні вирази використовуються для складного маніпулювання рядками в РНР. Функції, які підтримують регулярні вирази: eregO

eregjrepiaceO eregiQ

eregi__replace()

splitQ

Всі ці функції приймають рядок регулярного виразу як їх перший параметр. PUP використовує розширені регулярні вирази POSIX як визначено в POSEX 1003.2. Для повного опису регулярних виразів POSIX див. відповідні розділи керівництва (regex), в каталозі regex дистрибутива РНР.

Example 2-4. Приклад регулярних виразів

ereg("abc",$strmg); /* Повертає 'істина',


Сторінки: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18