[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ЧПУ и постраничный листинг.
Ramzil_Nixon
когда начал переобразовывть ссылки вроде таких:

site.ru/index.php?page=anketa&id=1

На более красивые:

site.ru/anketa1

Столкнулся с тем, что у меня перестали работать листринг страниц. то есть ссылка при листинге раньше выгледела так:

site.ru/index.php?page=anketa&id=1&str=2

В .htaccess есть такие строки:

RewriteRule ^anketa([0-9]+)? index.php?page=anketa&id$1 [L]


Это работает, то есть ссылка
site.ru/anketa1
выводит то же что и
site.ru/index.php?page=anketa&id=1

но вот как быть с листингом? понятия не имею, помогите пожалуйста



Спустя 39 минут, 32 секунды (8.01.2012 - 13:14) kent666 написал(а):
Тебе надо в GET переменных явно указать что буде переменная page и id
тогда ссылка будет иметь вид
site.ru/anketa1/1

Спустя 4 минуты, 27 секунд (8.01.2012 - 13:18) kent666 написал(а):
Для трех переменных будет выглядеть где то так
в .htaccess
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]

в variables.php
$GET = array( 
'page' => 'main',
'id' => all,
'str ' => all,
);

Спустя 10 минут, 14 секунд (8.01.2012 - 13:28) Ramzil_Nixon написал(а):
А только в .htaccess никак? У меня vatiables.php нет походу

Спустя 4 минуты, 50 секунд (8.01.2012 - 13:33) kent666 написал(а):
Используя ЧПУ у тебя должны быть определены все переменные GET которые ты будешь использовать!!!
Если ты этого не сделаешь то у тебя будет всего одна переменная!!!
http://irbis-team.com/15/4/1
Читай там все нормально изложено

Спустя 31 секунда (8.01.2012 - 13:34) Игорь_Vasinsky написал(а):
это к примеру было сказано.

и кстати удобно конфиг зранить в config.php а переменные частоиспользуемые объявлять в variables.php (or vars.php)

Спустя 22 часа, 37 минут, 40 секунд (9.01.2012 - 12:11) Ramzil_Nixon написал(а):
RewriteRule ^myfriends/([a-z0-9+)/([a-z0-9]+)/([0-9+])? index.php?page=friends&sell=$1&deluser=$2&key=$3 [L]


Есть такая строка в .htaccess

Если ввести

site.ru/index.php?page=friends&sell=friends&deluser=yes&key=231595413

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

site.ru/myfriends/friends/yes/231595413

Данные не удаляются из базы, но редрикет работает. то есть если ввожу оба ссылки, то есть зарабатывает:
if(isset($_GET['sell']) && $_GET['sell'] == true && $_GET['sell'] == 'friends' && isset($_GET['deluser']) && $_GET['deluser'] == true && $_GET['deluser'] == 'yes' && $_GET['key']) // Удаляем друга
{
mysql_query("DELETE FROM `friends` WHERE
`key_friends` = '"
.(int)$_GET['key']."'
"
) or die(mysql_error()); // Удаляем друга
header('Location: '.$index.$friendsUser);
}


Что тут не правильно, не подскажете?

Спустя 42 минуты, 7 секунд (9.01.2012 - 12:54) m4a1fox написал(а):
Ramzil_Nixon
if(isset($_GET['sell']) && $_GET['sell'] == true && 
$_GET['sell'] == 'friends' && isset($_GET['deluser']) &&
$_GET['deluser'] == true && $_GET['deluser'] == 'yes' &&
$_GET['key']) // Удаляем друга

Вынес мозг. Как то сложно.

Дальше, у тебя не установлена проверка на срабатывания msql запроса по удалению. Если он вернет false то переадресация все равно сработает. Условия нет!

Спустя 1 минута, 19 секунд (9.01.2012 - 12:55) Игорь_Vasinsky написал(а):
Цитата
'".(int)$_GET['key']."'

каждый раз одно и тоже.

да не экранируй ты int, ты уже к типу приводишь.

Спустя 3 минуты, 33 секунды (9.01.2012 - 12:58) Ramzil_Nixon написал(а):
m4a1fox, не в этом оказывается, в совсем в другом редрикт происходит, этот IF вообще не запускаЕтся

Спустя 10 минут, 11 секунд (9.01.2012 - 13:09) Ramzil_Nixon написал(а):
Цитата (Игорь_Vasinsky @ 9.01.2012 - 09:55)
да не экранируй ты int, ты уже к типу приводишь.

Лишняя защита не помешает smile.gif

Спустя 37 секунд (9.01.2012 - 13:09) m4a1fox написал(а):
Ramzil_Nixon
Цитата
этот IF вообще не запускаЕтся

Кто бы сомневался smile.gif

Спустя 26 минут, 44 секунды (9.01.2012 - 13:36) VolDroN написал(а):
Ramzil_Nixon не лишняя защита, а индийский код. В int нечего кроме цифр быть не может.

Спустя 5 минут, 30 секунд (9.01.2012 - 13:41) Игорь_Vasinsky написал(а):
Цитата
Ramzil_Nixon не лишняя защита, а индийский код. В int нечего кроме цифр быть не может.

аналогичное мнение. и в некоторых случаюх вообще перестаёт работать.

Спустя 2 минуты, 22 секунды (9.01.2012 - 13:44) Ramzil_Nixon написал(а):
Игорь_Vasinsky
VolDroN
Так у меня туда только и цифры идут.

Спустя 30 секунд (9.01.2012 - 13:44) Ramzil_Nixon написал(а):
RewriteRule ^myfriends(.*)$ index.php?page=friends&sell=friends&key=$1 [L]


Решил таким образом.

Спустя 23 секунды (9.01.2012 - 13:45) Игорь_Vasinsky написал(а):
ну и нафиг экранирование?


_____________
Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.