Php питання та відповіді, частина 3

Продовжую тему, яку можна коротко охарактеризувати як «катехізис». Незважаючи на те, що деякі відповіді цілком легко можна знайти в офіційному мані, з подивом зауважую, що далеко не всі вміють ним правильно користуватися. Якщо знати не тільки де шукати, а й як шукати, відповіді знаходяться у найкоротший час. Так що порада: вчіться користуватися довідниками, знадобиться не раз. а тепер ще одна порція faq`ових питань.

Як викликати константу за значенням змінної?

$var = 'CONST_NAME' ; echo constant ( $var );

Це може знадобитися, якщо ім'я константи формується динамічно. Хоча у разі не зовсім зрозуміло, навіщо константи потрібні взагалі.

Як автоматично перезавантажити сторінку через певний час?

Можливо, здивуйтеся, але php не помічник. Зробити це можна за допомогою javascript чи html. Другий простіше і працює майже завжди (не рахуючи ізгальюнських браузерів). Отже, все, що потрібно, додати між тегами шапки html-сторінки, що генерується, такий запис:

Чи можна захистити доступ до директорії, якщо в її назві використовувати ґрати?

Але Вася не врахував одного: грати # - спец-символ, і тому має бути закодована в дорозі, а не використовуватися в «голому» вигляді. Кодується вона у конструкцію %23. Тому, якби Вася замінив запит на наступний: http://site.ru/%23secret/config.php а також відключив виконання php-скриптів, то його здивованого погляду з'явився б повний лістинг даного файлу. Ну а там уже у відкритому вигляді всі реквізити доступу до бд. І якщо врахувати, що майже кожен хостер надає phpmyadmin, шлях до якого можна знайти в FAQ того ж хостера, Вася може попрощатися зі своєю унікальною базою, а також доброю порцією скриптів.

Як заборонити виконання скриптів?

Ситуації можуть бути різними. Припустимо, користувачі можуть вільно завантажувати файли в якусь папку, і тому необхідно заборонити їм залити і запустити php-скрипт. Навіщо, гадаю, пояснювати не потрібно. Що ж, зробити все досить просто. Потрібно в цій папці розмістити файл .htaccess з таким вмістом:

Якщо на хостингу можуть виконуватися і скрипти з іншим розширенням, крім .php, достатньо додати інші розширення: .php3 .phtml .php5 і т. д. якщо є бажання, можете перевірити роботу попереднього пункту, розмістивши наведений .htaccess в директорії #secret.

Як змусити працювати до кінця скрипт?

Таймаут може настати у випадках, коли закінчиться час, що виділяється скриптам для виконання, або якщо користувач натисне в браузері хрестик (скасування завантаження). У першому випадку потрібно додати на початок скрипта таку конструкцію:set_time_limit(0); — завдяки цьому час роботи скрипта встановиться в «нескінченність». Щоб скрипт не припиняв роботу у разі від'єднання користувача, потрібно викликати функціюignore_user_abort(true);