Страница 1 из 1

поругайте на код php

Добавлено: 2009-05-20 5:29:11
ProFTP
есть код, на пхп мало пишу, вроде бы разобрался с програмой, все работает, одну страницу написал

нету ли групых ошибок? там есть ньюансы, но про них долго рассказывать, я старался сделать по тому стилю который в этой программе писали...

посмотрите первый код на php и на html (в html все вроде бы праивльно) остальное я привел для пример, или для интереса...

skiped...

Re: поругайте на код php

Добавлено: 2009-05-20 7:32:11
zg
ProFTP писал(а):нету ли групых ошибок?
так... многоскриптовые проекты надо выкладывать одинм архивом. Эти портянки читать невозможно, если хочешь совета, поправь пост и изложи суть проблемы.

Re: поругайте на код php

Добавлено: 2009-05-20 16:01:04
ProFTP
сори, а синтаксических ошибок грубых нету в первом скрипте в самом вверху??

Re: поругайте на код php

Добавлено: 2009-05-20 17:32:49
ProFTP

Код: Выделить всё

if($clean->strictDigit(@ $_GET['weekly']))
а ч почему там "собака" стоит??

в первые вижу...

это потомучто оно в функцию передается?

Re: поругайте на код php

Добавлено: 2009-05-20 17:42:41
zg
ProFTP писал(а):а ч почему там "собака" стоит??
потому что программер поленился проверить наличие переменной
ProFTP писал(а):а синтаксических ошибок грубых нету в первом скрипте в самом вверху??
а пхп их выдаёт?

Re: поругайте на код php

Добавлено: 2009-05-20 18:12:59
ProFTP
в логи писало в error.log я исправил несколько переменных, уже не пишет...

Re: поругайте на код php

Добавлено: 2009-05-20 19:07:26
zg
ProFTP писал(а):все работает
тогда не парься :smile:

Re: поругайте на код php

Добавлено: 2009-05-27 0:21:27
ProFTP
Есть сайт со следующей структурой:
/main.css
/index.php
/files/
/images/


как написать правило для mod_rewrite. При котором пользователь может напрямую
обращаться к файлу /main.css, а также к любым файлам в папках /files/ и
/images/ но только если файлы существуют. Все остальные запросы должны
перенаправляться на файл /index.php (не редирект)

Re: поругайте на код php

Добавлено: 2009-05-27 0:32:31
Alex Keda

Код: Выделить всё

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.*)/(.*)/       index.php?town=$1&general_cat=$2&sub_cat=$3&page=$4 [NC]

Re: поругайте на код php

Добавлено: 2009-05-27 1:02:28
ProFTP
задание по-моиму не такое как ты написал...

что значит НЕ редирект никто не знает?

Re: поругайте на код php

Добавлено: 2009-05-27 7:40:41
zg
lissyara писал(а):^(.*)/(.*)/(.*)/(.*)/
жесть :smile:
ProFTP писал(а):Все остальные запросы должныперенаправляться на файл
1. выставляешь 404 ошибку на index.php
2. кладёшь во все недвижковые папки .htaccess, в котором вырубаешь мод_реврайт
3. в индексной папке при помощи реврайта заворачиваешь всё и вся на индекс.пхп

Re: поругайте на код php

Добавлено: 2009-05-27 8:42:44
Alex Keda
zg писал(а):
lissyara писал(а):^(.*)/(.*)/(.*)/(.*)/
жесть :smile:
а как лучше?

Re: поругайте на код php

Добавлено: 2009-05-27 9:04:47
zg
lissyara писал(а):а как лучше?
при твоём варианте получается разрозненная логика, намного лучше, если реврайт будет пихать адрес в одну переменную, которую потом будет обрабатывать скрипт.

например так

Код: Выделить всё

RewriteRule ^(.*)$      index.php?q=$1 [NC]
...

index.php
<?
...
@list($town, $general_cat, $sub_cat, $page) = split('/', $_GET['q']);

...
?>
то есть вся логика обработки адреса переходит в index.php, а .htaccess становится более универсальным, что удобно при доработке или просто для понимания логики.

Но я использую немного другой код

Код: Выделить всё

## Запросы, которые идут к разделам и файлам php, направляем на индекс
RewriteCond %{REQUEST_URI} \.php$   [OR]
RewriteCond %{REQUEST_URI} /$       [OR]
RewriteCond %{REQUEST_URI} /[^\.]+$
RewriteRule ^(.*)$ index.php?q=$1&%{QUERY_STRING} [L]
в принципе очень удобно - если запрос к пхп или резделу, то идёт посылка на индекс, если нет, то ничё не происходит.