Пак за сесиите
7 отговора
298 прегледа
Пак за сесиите
Здравейте,
на Linux-ски сървър с PHP v.4.3.8
(в php.ini е зададено session.use_cookies On, session.use_only_cookies Off, session.use_trans_sid On)
искам да нправя следното: на всяка страница от сайта да проверявам дали user-a се е логнал и ако да стартирам сесия, за да му предоставя повече услуги. Ако не продължавам без сесия докато не се сети да се логне.
Пробвам така:
на всяка страница:
session_start();
if (!isset($_SESSION['user'])) {session_unset(); session_destroy();}
Работи обаче има следния досаден ефект - още от първата страница всички линкове са с ?PHPSESSID=.... накрая
Как да го изчистя?
Благодаря предварително.
Между другото на Linux но с PHP v.4.2.2 същия код работи без този (д)ефект
на Linux-ски сървър с PHP v.4.3.8
(в php.ini е зададено session.use_cookies On, session.use_only_cookies Off, session.use_trans_sid On)
искам да нправя следното: на всяка страница от сайта да проверявам дали user-a се е логнал и ако да стартирам сесия, за да му предоставя повече услуги. Ако не продължавам без сесия докато не се сети да се логне.
Пробвам така:
на всяка страница:
session_start();
if (!isset($_SESSION['user'])) {session_unset(); session_destroy();}
Работи обаче има следния досаден ефект - още от първата страница всички линкове са с ?PHPSESSID=.... накрая
Как да го изчистя?
Благодаря предварително.
Между другото на Linux но с PHP v.4.2.2 същия код работи без този (д)ефект
Re: Пак за сесиите
SESSION
Обърни внимание на :
session.use_trans_sid
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Обърни внимание на :
session.use_trans_sid
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Редактирано от ro6avia на
Re: Пак за сесиите
Ro6av, моля те, уточни какво имаш в предвид!
Ако идеята ти е да го сетна session.use_trans_sid Off, тогава наиcтина няма ?PHPSESSID..... в линковете, но пък ако user-a отказва да приема cookies сесията няма да работи.
Благодаря за отделеното време.
Ако идеята ти е да го сетна session.use_trans_sid Off, тогава наиcтина няма ?PHPSESSID..... в линковете, но пък ако user-a отказва да приема cookies сесията няма да работи.
Благодаря за отделеното време.
Re: Пак за сесиите
Избираш си
или ?ПХПСЕССИД или КУКИ
ако не взима куки-та - задължително транс сид
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
или ?ПХПСЕССИД или КУКИ
ако не взима куки-та - задължително транс сид
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Re: Пак за сесиите
Да, това е така.
Ясно че ще има ?PHPSESSID=... когато user-а e забранил cookies
Проблема ми е, че дори когато user-а e разрешил cookies в линковете се появява ?PHPSESSID=....
А, всъщност, това се случва само в IE и то само във v.6. Това го установих току що. В Mozilla се държи прилично.
Имате ли идеи?
Благодаря.
Ясно че ще има ?PHPSESSID=... когато user-а e забранил cookies
Проблема ми е, че дори когато user-а e разрешил cookies в линковете се появява ?PHPSESSID=....
А, всъщност, това се случва само в IE и то само във v.6. Това го установих току що. В Mozilla се държи прилично.
Имате ли идеи?
Благодаря.
Re: Пак за сесиите
Да не би да гледаш само първото повикване - там винаги има ?PHPSESSID. При второто, ако има cookie, няма. Броузъра не би трябвало да има значение.
И най-ярките личности си плащат тока.
И най-ярките личности си плащат тока.
Re: Пак за сесиите
можеш да си направиш следната изгъзица :
<?php
session_start();
$_SESSION['num_of_vizits'] += 1;
if ($_SESSION['num_of_vizits']==1){
header("Location: index.php");
die();
}
...
nadolu drugia ti kod
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
<?php
session_start();
$_SESSION['num_of_vizits'] += 1;
if ($_SESSION['num_of_vizits']==1){
header("Location: index.php");
die();
}
...
nadolu drugia ti kod
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Re: Пак за сесиите
Edembg, абсолютно си прав, че става въпрос само за първото повикване.
Както и че браузера няма значение - явно снощи много ми се е искало в IE да е причината ;) Съжалявам, че ви подведох.
Обаче, би ли ми обяснил, моля те, защо става така (с първото извикване).
И как да го избягна?
И още: защо това е така на PHP 4.3.8, а на 4.2.2 го няма ?PHPSESSID=... при първото извикване? (тоя път проверих 3 пъти)
Благодаря.
Както и че браузера няма значение - явно снощи много ми се е искало в IE да е причината ;) Съжалявам, че ви подведох.
Обаче, би ли ми обяснил, моля те, защо става така (с първото извикване).
И как да го избягна?
И още: защо това е така на PHP 4.3.8, а на 4.2.2 го няма ?PHPSESSID=... при първото извикване? (тоя път проверих 3 пъти)
Благодаря.