|
|
|
| Здравствуйте.
1. Пользователь вводит url типа http://mysite.com/mypage
2. Файл index.php находит реальный url страницы mypage: index.php?page=12
3. А теперь вопрос: как я могу использовать конструкцию if($_GET['page'] == 12)? При таком url переменная $_GET['page'] ведь не будет создана? | |
|
|
|
|
|
|
|
для: antf
(30.11.2008 в 10:55)
| | каким интересно боком он её находит:)
если вы както умудряетесь в htaccess переделать на mypage на ?page=12
такой ГЕТ будет создан. | |
|
|
|
|
|
|
|
для: sl1p
(30.11.2008 в 11:14)
| | >каким интересно боком он её находит:)
1. В .htaccess пишем:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
|
2. А в самом index.php
<?php
//отделяем чпу-параметры от поддиректории, в которую сайт установлен
$get_vars = str_replace($gl_subdir, '', $_SERVER['REQUEST_URI']);
//отделяем чпу-параметры от $_GET-переменных
$question_pos = strpos($get_vars, '?');
if(!$question_pos) $question_pos = strlen($get_vars);
$get_vars = substr($get_vars, 0, $question_pos);
//выбираем настроящий url из базы
$url = db_select_one("SELECT url FROM {$gl_db_prefix}url WHERE url = '{$get_vars}'");
?>
|
| |
|
|
|
|
|
|
|
для: antf
(30.11.2008 в 11:30)
| | Можно обойтись без $_GET-переменных и вместо столбца url, создать столбец params. Там будет хранится сериализованный ассоциативный массив. Он будет содержать имена переменных, которые необходимо создать и их значения.
<?php
//отделяем чпу-параметры от поддиректории, в которую сайт установлен
$get_vars = str_replace($gl_subdir, '', $_SERVER['REQUEST_URI']);
//отделяем чпу-параметры от $_GET-переменных
$question_pos = strpos($get_vars, '?');
if(!$question_pos) $question_pos = strlen($get_vars);
$get_vars = substr($get_vars, 0, $question_pos);
//выбираем массив с именами переменных и из значениями
$vars_to_create = unserialize(db_select_one("SELECT params FROM {$gl_db_prefix}url WHERE url = '{$get_vars}'"));
//создаем переменные, присваиваем значения
if(is_array($vars_to_create))
{
foreach($vars_to_create as $key => $value)
$$key = $value;
}
?>
|
Минусы
* Снижает читабельность.
* Мне весь Ortus и модули к нему придется переписывать :( | |
|
|
|
|
|
|
|
для: antf
(30.11.2008 в 11:36)
| | я если честно не спалил зачем юзается request_uri если можно дёргать напрямую гет параметры?
RewriteRule ^(.*)/?$ index.php?page=$1 [L]
domen/lala/
echo $_GET['page']; //lala | |
|
|
|