Topic: del sesiju

Sveiki,

Pakeiciau PHP 4.3 i PHP5.2 ir pradedant dirbti ismeta tokia klaida:

Warning: session_start() [function.session-start]: The session id contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in C:\wamp\www\kelias\login.php on line 2

Kame cia saknys, ka tai reiskia??

Sesijos kintamieji kataloge tmp yra sukuriami

Re: del sesiju

O pas tave sesijos ID generuojamas programiškai?

Ir gali pažiūrėti phpino() ar naudojamas "Suhosin" patch'as?

Re: del sesiju

del sesiju norejau paklaust: jeigu pas vartotoja nepalaikomi kukiai, sesijos vistiek veiks, tiesiog id kabint prie url?

Re: del sesiju

qwertyuiop wrote:

del sesiju norejau paklaust: jeigu pas vartotoja nepalaikomi kukiai, sesijos vistiek veiks, tiesiog id kabint prie url?

Savaime sesijos nepradės veikti. Jeigu nustatyta, kad jos turi veikti cookių pagalba tai tuo atveju jeigu pas vartotoją bus išjungti/nepalaikomi cookiai tai sesijoje niekas neišliks.

Sesijos ID perdavinėjimas per URL'ą turi savų niuansų ir daug kam nepatinka.

Galima suprogramuoti mechanizmą, kuris veiktu kei sesijos IR perduodamas per URL ir per cookius ir sesijos pradžioje atliekant testą nustatyti ar cookiai veikia ar ne ir pagal tai rinktis kokį metodą naudoti.

Re: del sesiju

As sesiju nelabai gerai ismanau, tiesiog darau taip:

if (isset(session_id)) session_id(strip_tags($_GET['session_id'])) // vat man irgi lygtais del tu ilegal character buvo bet strip_tags padejo

session_start()

if (empty($_SESSION['kintamasis']))
{
cia paimami vartotojo duomenys pagal session_id;
ir priskiriamas $SESSION['kintamasis'];
}

Re: del sesiju

minde wrote:

O pas tave sesijos ID generuojamas programiškai?

ID generuojami automatiskai

Ir gali pažiūrėti phpino() ar naudojamas "Suhosin" patch'as?

Per phpinfo() tokio Suhosin patch'o nemaciau..

Re: del sesiju

gintarinis wrote:
minde wrote:

O pas tave sesijos ID generuojamas programiškai?

ID generuojami automatiskai

Ir gali pažiūrėti phpino() ar naudojamas "Suhosin" patch'as?

Per phpinfo() tokio Suhosin patch'o nemaciau..

Reiškiasi reikia ieškoti kodėl nepripažįstamas sesijos ID. Pabandyk google, nes aš nelabai esu susidūręs su šia problema. Kažkas arba užteršia sesijos ID nereikalingais simboliais arba kažkas blogai interpretuoja. Tai gali būt susije ir su tam tikrais PHP extensionais (mb_string, kriptografijos, suspaudimo ir pan.). Gali net pabandyti pasūlytą strip_tags() funkciją ID "pravalymui" - bet čia jau šiaip "hack'as".

Re: del sesiju

qwertyuiop wrote:

if (isset(session_id)) session_id(strip_tags($_GET['session_id']));

Ar egzistuoja tam tikra funkcija geriau tikrinti su speciliai tam skirta funkcija : function_exists(). Prie viso to vertėtų patikrinti ir ar egzistuoja "session_id" masyve $_GET.

O bendrai viso kodo ir sesijų funkcionalumo komentuoti kažkaip negaliu, nes nesimato pilno konteksto. Nes pagal viską turi egzistuoti sistema, kurios pagalba esant reikalui sesijos ID klijuojamas prie vidinių URL'ų arba veikti atitinkama konfigūravimo schema, kuri nustato atitinkamus PHP parametrus sesijai sukonfigūruoti, kad sesijos ID esant reikalui būtų automatiškai klijuoajamas. Tik pastaruoju atveju tikriausiai kils poreikis dar žaisti su redirect'ais, nes PHP kode keičiant tam tikrus nustatymu jie vykdomam kodui jau nebegalioja.