Цитата |
Зачем register_globals = On делать? |
Цитата |
# '-d' (является ли каталогом) СравниваемаяСтрока считается путем, проверяется существование этого пути и то что этот путь является каталогом. # '-f' (является ли обычным файлом) СравниваемаяСтрока считается путем, проверяется существование этого пути и то что этот путь является обычным файлом. |
Цитата |
?route=$1 |
Цитата |
Лирическое отступление. Вот тут есть маленький камушек под водой. Дело в том, что редакторы, использующие кодировку UTF-8, зачастую настроены на маркировку файлов так называемым BOM. Это три первых байта файла, в которых информация о кодировке. Так вот php-интерпретатор ругается на них как на вывод в поток. Как будто это мы что то написали. Нужно этот BOM отключить. Алгоритм проверки такой: а) Делаем новый файл. б) Пишем в него это: <?php header("Content-Type: text/html; charset=utf-8"); echo 'Шило в мешке не утаишь.'; в) Запускаем, смотрим. |
Цитата |
if(выходит ошибка "Cannot modify header information") { //Ищем в редакторе, как отключить BOM //Сносим файл, делаем новый без BOM //Повторяем операцию } elseif(выходят кракозяблы) { //Устанавливаем в редакторе кодировку UTF-8 //Повторяем операцию } else { //Всё пучком } 2. Переписываем листинг в по новому настроеном редакторе. Важно!!! Не переделываем существующие файлы, а сносим их и делаем новые. Обращайте внимание на опцию браузера "кодировка". Должно стоять - "Определять автоматически". 3. Запускаем и радуемся жизни. Впредь используя текущие настройки редактора. ________________________________________________________________ Не помешает выставить кодировку еще и заголовком, но об этом позже. Дальше по теме 2, 3. Убиваем магические кавычки. 4. Отключаем глобальные переменные 5-8. Обработка ошибок запросов. Вот тут и пригодятся странички. Обратите внимание на строку Options -Indexes Эта строка запретит вывод списка файлов и директорий, если в папке не окажется индекса. 8-12. Обработка ошибок PHP интерпретатора. Тут немного по подробнее. Строки эти закомментированы, так как на момент разработки ошибки конечно лучше видеть на экране. А когда проект будет сдан в эксплуатацию, их лучше логировать (записывать в специальный файл), потому что если злой хацкер увидит ошибку, то может извлечь из неё полезную информацию. Но ошибки нужно знать, что бы вовремя их исправить. По этому эти строки на готове. Особо обратите внимание на строку # php_value error_log "Z:/home/test.den/www/log/error.log" Это путь до файла, куда мы и будем их складывать. Для этого сначала в корне нужно организовать директорию log и выставить на нё права 777. Путь должен быть абсолютный, от диска. Узнать его просто, нужно выполнить этот скрипт и скопировать то, что получится. <?php echo $_SERVER['DOCUMENT_ROOT'].'/log/error.log'; |
Цитата |
401.html 403.html 404.html Оформлять их не нужно, это дело верстальщиков. Нам будет достаточно этого: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>404</title> </head> <body> <h2 style="color:#FF0000">404</h2> Запрашиваемая страница отсутствует на нашем сайте. </body> </html> Еще там же в корне нужно сделать файл .htaccess с таким содержанием: AddDefaultCharset UTF-8 php_flag magic_quotes_gpc Off php_flag magic_quotes_runtime Off php_flag register_globals Off ErrorDocument 401 /401.html ErrorDocument 403 /403.html ErrorDocument 404 /404.html Options -Indexes # php_value error_reporting 2047 # php_value error_log "Z:/home/test.den/www/log/error.log" # php_flag log_errors on # php_flag display_errors off RewriteEngineon RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?route=$1 [L,QSA] |
Цитата |
Вот тут есть маленький камушек под водой. Дело в том, что редакторы, использующие кодировку UTF-8, зачастую настроены на маркировку файлов так называемым BOM. Это три первых байта файла, в которых информация о кодировке. Так вот php-интерпретатор ругается на них как на вывод в поток. Как будто это мы что то написали. Нужно этот BOM отключить. Алгоритм проверки такой: а) Делаем новый файл. б) Пишем в него это: <?php header("Content-Type: text/html; charset=utf-8"); echo 'Шило в мешке не утаишь.'; |
<?php
header("Content-Type: text/html; charset=utf-8");
echo 'Шило в мешке не утаишь.';