Autor Zpráva
scratcher
Profil
zdravim,
mam problem, na strance se uzivatel prihlasi a potom co chce zaplatit ho presmeruji na stranku kde jsou udaje o platbe (tato stranka je zabezpecena SSL). Kdyz se uzivatel prihlasi na nezabezpecene strance, tak po presmrovani se udaje ktere vlozim do SESSION smaze, takze na te zabezpecene strance se musi znova prihlasit a pak to funguje.
Da se to nejak udelat aby se udaje ze session neztratily? diky
Taps
Profil
scratcher
cookie by použít nešlo ?
Majkl578
Profil
zajimave, v mem redakcnim systemu s tim problem neni, prihlasim se treba na normalnim http, pak si prepnu na https a session se drzi... neni nejak upravena session cookie?
scratcher
Profil
Tak nevim,na localu to beha normalne a po presunu na hosting to blbne.
kdyz pouziji jen HTTP tak session plnim daty a to beha, ale jakmile presmeruji na HTTPS, tak se session smaze. Pokud to ale udelam podruhe tak uz i na HTTPS ta session drzi, coz mi prijde zvlastni.
potreboval bych poradit kde by mohla byt chyba,protoze uz opravdu nevim.
diky
bohyn
Profil
scratcher
Zjisti jestli se odesila SID. Pokud ne, tak zkus vynutit posilani SID i pres nezabezpeceny protokol fci session_set_cookie_params
scratcher
Profil
tak SID se neprenasi a pokud pouziju funkci session_se_cookie_params,tak je to porad stejne.
Popisu to jeste trochu nazorneji:
na strance "http://www.domena.cz/stranka_a.php" vytvorim SESSION s udaji a presmeruji (Header) na "https://www.domena.cz/stranka_b.php" a v ni se dale s tou SESSION pracuje ale session v ni neni (session_id() je prazdna). funkci "session_set_cookie_params" pouzivam na strance "stranka_a.php" s temito takto "session_set_cookie_params(3600,'/','domena.cz',true);"

diky za rady
bohyn
Profil
scratcher
To je mozna ten problem (vynucujes prenos cookie jen pres SSL a mozna proto se neprenese pri nastaveni). Zkus pouzit tohle:
session_set_cookie_params(3600,'/','domena.cz',false);

nebo dat prihlasovani taky na SSL
scratcher
Profil
Tak to mi taky nebeha :(, jedinou moznosti asi bude od zacatku pouzivat jen HTTPS a ne HTTP.
rudolf
Profil *
Řeším úplně stejný problém. Mám rozpracovaný server na obou protokolech. Pokud přejdu odkazem z http na https stránku některé proměnné v Sessions se ztratí, tedy nejsou zaregistrované, testuji to funkcí session_is_ registered(), jindy jsou zaregistrované ale jsou bez hodnoty, některé mají hodnotu stále. Připadá mi to jako bug Apache nebo snad PHP? Nepomohl by novější soft? Mám tyto verze:
Apache 2.2.8
PHP 5.2.6
MySql 5.0.51b
Mnohokrát děkuji za radu. Stojím.. Také uvažuji jestli nepřejdu výhradné na https, ale co když je chyba jinde? Rudolf
bohyn
Profil
Tak sem trochu googlil a zda se ze sem nasel reseni

It is pretty simple hand over from http to https and maintain the session. Here's an example:
<?php
session_start();
if(@!$_SERVER['HTTPS']){ // Non - SSL session here
$_SESSION['test'] = 'This was set in the non-SSL part of the session!';
header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.session_name( ).'='.session_id());
exit;
}
echo $_SESSION['test']; // Now we are in a secure session
?>


Mezi zabezpecenou a nezabezpecenou zasti webu je zrejme nutne predavat SID pres URL.
scratcher
Profil
To me napadlo jako prvni reseni ale to bohuzel take nefunguje.
protoze pokud SESSION definuji na HTTP tak i kdyz v URL prenesu SID, a presmeruji na HTTPS tak SESSION uz neexistuje.
rudolf
Profil *
Také jsem googlil. Zkus se podívat sem http://blog.novoj.net/2007/06/05/sdileni-session-mezi-protokoly-http-a-https/#comment-5688 . Já se budu držet jednodušší cesty. Přepracuju to na https.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0