|
|
|
| Вобщем у меня берется из базы адрес и к нему в конец нужно добавить параметр his=1. Для это я использую следующий код:
// Адрес страницы
$page = $his['page'];
if(substr_count($his, '?') > 0)
{
$len = strlen($page) - 1;
if($page{$len} == '?')
$way = $home . $page . 'his=1';
else
$way = $home . $page . '&his=1';
}
else
{
$way = $home . $page . '?his=1';
}
|
Но код работает не коректно. Если ему передать значение /news/?id=2, то на выходе мы получаем http://site.ru/news/?id=2?his=1 вместо http://site.ru/news/?id=2&his=1 | |
|
|
|
|
|
|
|
для: Z3RO
(09.05.2011 в 22:29)
| | >if($page{$len} == '?')
Довольно странная строка (какова её логика?) и с $his тоже не очень понятно, вы используете его то как ассоциативный массив, то как строку. Что находится в этой переменной? | |
|
|
|
|
|
|
|
для: cheops
(09.05.2011 в 22:58)
| | Ну по сути строка
if($page{$len} == '?') -- http://php.su/functions/?substr (первый листинг)
проверяет какой символ находится в конце строки и если это вопросительный знак, то исполняет код далее.
Вот полный код для разбора
$r = $_SERVER['HTTP_REFERER'];
$his = mysql_fetch_array(mysql_query("SELECT * FROM `history` WHERE `user` = $user_id ORDER BY `date` DESC LIMIT 1;"));
$page = $his['page'];
if(substr_count($his, '?') > 0)
{
$len = strlen($page) - 1;
if($page{$len} == '?')
$way = $home . $page . 'his=1';
else
$way = $home . $page . '&his=1';
}
else
{
$way = $home . $page . '?his=1';
}
header("Location: " . $way . "");
|
| |
|
|
|
|
|
|
|
для: Z3RO
(09.05.2011 в 23:01)
| | Судя из результата, то ошибка здесь:
if(substr_count($his, '?') > 0) | |
|
|
|
|
|
|
|
для: Z3RO
(09.05.2011 в 23:08)
| | Вот это я лоханулся, я переменные перепутал. Извиняюсь за потраченое зря время. | |
|
|
|