Portál AbcLinuxu, 10. května 2025 19:38

Dotaz: PHP a problém se session

25.10.2011 21:36 Orlando
PHP a problém se session
Přečteno: 421×
Odpovědět | Admin
Zdravím, poradí někdo jak ošetřit tuto zapeklitou situaci?

Dejme tomu že jsem na strance https://www.domain.ltd/ na této stránce mám script

$_SESSION['foo'] = true;

a zjistím existenci tak existuje

ale když budu na strance http://www.domain.ltd/ tak proměnná neexistuje, proč? Poradí někdo jak zaregistrovat SESSION aby byl vidět i v http i v https ? Děkuji
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

25.10.2011 23:33 aaaaaa
Rozbalit Rozbalit vše Re: PHP a problém se session
Odpovědět | | Sbalit | Link | Blokovat | Admin
Server s tym nema problem, len klient neposiela cookies s PHPSESSID, ci ako sa to vola. To IMHO ani nejde uplne regulerne spravit. Odporucam hodenie Session ID alebo nejakej identifikujucej cookie do adresy (ak sa jedna o odkazy).
Josef Kufner avatar 26.10.2011 11:56 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP a problém se session
Odpovědět | | Sbalit | Link | Blokovat | Admin
Cookie se session ID pravděpodobně má nastaven příznak, že se má posílat jen po https.

http://php.net/manual/en/function.session-set-cookie-params.php
Hello world ! Segmentation fault (core dumped)
26.10.2011 18:02 Orlando
Rozbalit Rozbalit vše Re: PHP a problém se session
Tak jsem to přelouskal ale abych se přiznal, tak vůbec nevím o co jde. Ale asi to ani nejde:(
Josef Kufner avatar 26.10.2011 21:09 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP a problém se session
Obsah $_SESSION se ukládá mezi jednotlivými HTTP požadavky na serveru a je identifikován pomocí session ID. Na klientovi je uloženo jen toto ID a na jeho uložení se používá cookie. Tou funkcí nastavíš parametry té cookie, mimo jiné i to, zda je https-only nebo se má poslat jak po http, tak po https.
Hello world ! Segmentation fault (core dumped)
27.10.2011 08:36 neasi
Rozbalit Rozbalit vše Re: PHP a problém se session
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nezabudol si na session_start(); session_register("foo"); $_SESSION["foo"] = "bar";
28.10.2011 16:46 Orlando
Rozbalit Rozbalit vše Re: PHP a problém se session
Ne, nazabudol ;)

jinak jsem zkoušel
session_set_cookie_params ( 1800 , '/' , 'example.com' , true );
session_start();
i
session_set_cookie_params ( 1800 , '/' , 'example.com' , false )
session_start();
ale stejně to nejde :(
29.10.2011 20:32 Orlando
Rozbalit Rozbalit vše Re: PHP a problém se session
Odpovědět | | Sbalit | Link | Blokovat | Admin
Fakt nikdo neporadí? :(
30.10.2011 00:26 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: PHP a problém se session
Session si můžete přenést, ale ne automaticky sdílet (nepletu-li se).
Přenos z http do https:

http://www.domain.ltd/index.php (odkaz na přenesení):
<?php
//http://www.domain.ltd/index.php
session_start();
$_SESSION['foo'] = 'bar';
echo '<a href="https://www.domain.ltd/index.php?hsessionid="' . session_id() . '">Prenes session</a>';
https://www.domain.ltd/index.php (příjemce s nastavením):
<?php
//https://www.domain.ltd/index.php
if(isset($_GET['hsessionid']))
  session_id($_GET['hsessionid']);
session_start();

if(isset($_SESSION['foo']))
  echo "Funguje to";
else echo "NEfunguje to";
PS: a klidně to může být jeden files
<?php
if(isset($_GET['hsessionid']))
  session_id($_GET['hsessionid']);
session_start();
$_SESSION['foo'] = 'bar';//nebo co…

if($_SERVER["SERVER_PORT"] == '80')//třeba takto nějak
  $prot = "https";
else $prot = "http";
  echo '<a href="'.$prot.'://www.domain.ltd/index.php?hsessionid="' . session_id() . '">Prenes session</a>';
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.