Преобразование переменных

dimonbes

Новичок
Преобразование переменных

Доброго Всем времени суток!

Пишу доску объявлений для своего сайта.
Для постраничного отображения использую что-то вроде:

function set_page($mode)
{
global $cat, ...; // $cat=1 - рога, $cat=2 - копыта и т.д
if($mode==1) $dis_mode = '&cat='.$cat.'';
elseif... ;
...
...
echo '<a href=?page='.$p.$dis_mode.'> '.$p.' </a>';
//$p - номер страницы
}

При обычном просмотре все шло как часы, ссылка была напр.
http://mysite.ru/index.php?page=3&cat=2
Но после добавления нового объявления (т.е. на странице "Ваше объявление успешно добавлено!" с выводом всех объявлений с новым наверху) номер cat упорно не хотел выводиться, т.е было http://mysite.ru/index.php?page=3&cat=
(после cat= ничего не было). Причем сама переменная замечательно определялась с типом "string". После некоторого времени шаманства я догадался привести ее к инту, и все заработало.
Никто не знает, что за лажа, где еще преобразование может быть так критично?
 

white phoenix

Новичок
1. укажи версию PHP.
2. сделай var_dump($cat); без перевода в int и напиши сюда результат
 

dimonbes

Новичок
PHP 4.3.10
При обычном просмотре: string(1) " номер категории"
После 1 добавления: string(5) " номер категории"
После 2 добавления: string(7) " номер категории"
После 3 добавления: string(9) " номер категории"
...
Короче, круто... :(
 

white phoenix

Новичок
dimonbes
всегда приводи не выдуманный результат работы предложеного кода, а реальный.
 

white phoenix

Новичок
dimonbes
> В смысле?
При обычном просмотре: string(1) " номер категории"
После 1 добавления: string(5) " номер категории"
После 2 добавления: string(7) " номер категории"
После 3 добавления: string(9) " номер категории"
какой бы ни была $cat, код var_dump($cat); не выведет в точности того что ты написал.
 
Сверху