Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Cookie Session and Redirect
Форумы портала PHP.SU » » HTTP и PHP » Cookie Session and Redirect

Страниц (1): [1]
 

1. Andrew73 - 07 Сентября, 2011 - 14:08:12 - перейти к сообщению
Доброго времени суток
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. function Redirect($url='index.php') {
  4.   header('Location:'.$url);
  5.   exit;
  6. }
  7. ?>
  8.  

в .htaccess
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. php_value session.use_only_cookies "0"
  3. php_value session.use_trans_sid "1"
  4.  

вызовы функции бывают разные

PHP:
скопировать код в буфер обмена
  1. Redirect('index.php?foo=bar');
  2. Redirect('index.php?foo=bar&id=1');
  3. Redirect('index.php');


Отключаю куки, во всех ссылках появляется
&PHPSESSID=......
но при редиректе не добавляет в конец &PHPSESSID=
Вопрос стоит как грамотно написать в функцию проверку УРЛ, что бы сделать следующее:

если нет параметров,
PHP:
скопировать код в буфер обмена
  1. $url.=  "?" . session_name() . '=' . session_id();

а если есть, то
PHP:
скопировать код в буфер обмена
  1. $url.= "&" . session_name() . '=' . session_id();


что бы не получились ссылки вида
index.php&PHPSESSID=....
или
index.php?foo=bar?PHPSESSID=....

Может это велосипеТ и есть проще решение - буду благодарен
2. LIME - 07 Сентября, 2011 - 14:38:42 - перейти к сообщению
может редирект через метаполе поможет?
3. filkeith - 07 Сентября, 2011 - 15:42:48 - перейти к сообщению
а параметров много разных?
если в лоб можно же
PHP:
скопировать код в буфер обмена
  1.         if (isset ($_GET['foo'] or isset ($_GET['id'] or и.т.д.))
  2.                 {
  3.                 $url.= "&" . session_name() . '=' . session_id();
  4.                 }
  5.                 else
  6.                 {
  7.                 $url.=  "?" . session_name() . '=' . session_id();
  8.                 }
4. Andrew73 - 08 Сентября, 2011 - 09:14:45 - перейти к сообщению
LIME а зачем такие финты?
filkeith - полная ерунда! Откуда $_GET, если я делаю редирект с параметрами?
решил вот таким способом:
5. LIME - 08 Сентября, 2011 - 11:00:11 - перейти к сообщению
Andrew73 пишет:
LIME а зачем такие финты?
а затем что сид добавляется к ссылкам в документе а не в заголовках
незнаю добавит ли в мета поле но попробовать можно
впрочем дело ваше
(Добавление)
Andrew73 пишет:
Откуда $_GET, если я делаю редирект с параметрами?
конечно ваш вариант получше но $_GET будет если вы параметры в редиректе отправляете

 

Powered by ExBB FM 1.0 RC1