Autor Zpráva
Liba Kovářová
Profil
Ahoj, jak fungují cookies: Mám na localhostu složku web, v ní složku prihlasit, v ní php soubor, ve kterém nastavuji cookies. A pak ten cookie potřebuju ve složce web/srandicky/..., čili v jiné složce, a tam se ten cookie nezná. Mezi cookies je to zapsané v kolonce localhost. Když stejný skript, který cookie využívá, dám do složky, kde ho nastavuji, tak to funguje, když ho překopíruju do jiné složky, tak ne. To fakt musím všechny soubory, kde nastavuji cookie, dát do "nadřezené" složky? Díky.
ShiraNai7
Profil
Nastavuj cestu při odesílání cookie na "/".
Liba Kovářová
Profil
Jako
setcookie ('/id_uzivatele', $radek[0]) ;
?
ShiraNai7
Profil
Ne:
setcookie('id_uzivatele', $radek[0], 0, '/');

rtfm

edit: Jen taková poznámka, je ti jasné, že pokud uložíš ID uživatele do cookie, tak si její hodnotu může uživatel libovolně měnit? Pokud to používáš pro přihlášení, tak je to vážná bezpečnostní díra.
Liba Kovářová
Profil
ÁÁÁÁÁÁ Super, díky moc.
Liba Kovářová
Profil
Bezpečnostní díra... ne, pro přihlášení používám uživatelská jména - ale to asi problém neřeší, co? Jak na to?

A ještě mám jeden problém. Po přihlášení nastavím ty cookies, a pak použiju header, abych se po přihlášení dostala na jinou stránku. A prohlížeč tohle zvesela ignoruje, resp. chvilku nad tím popřemýšlí a až pak to ignoruje, nevyhodí žádnou hlášku ani nic takového, prostě jenom nic neudělá a pokračuje ve svém skriptu (který znovu zobrazí přihlašovací formulář).

      if ($radek) {    
        setcookie ('id_uzivatele', $radek[0], 0, '/') ;
        setcookie ('uziv_jmeno',$radek[1], 0, '/');
        header ("Location: .dirname($_SERVER['PHP_SELF'])."/prihlasen.php]http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/prihlasen.php");
        exit();
      }  else {...

Evidentně tam program dojde, cookies nastaví, když si tam přidám nějakou pomocnou proměnnou, tak do ní něco vloží a pak to můžu jinde "vyechovat", čili program se snaží tuto část zpracovat. Ale na stránku se nepřesměruje, a pokračuje ve skriptu dál. V čem může být problém?
ShiraNai7
Profil
Liba Kovářová:
Používej PHP SESSION a ID ukládej tam. Viz např. tohle a tohle.
Liba Kovářová
Profil
Teď se dívám, že jsem to tam nějak špatně nakopírtovala. Správně mělo být:

      if ($radek) {    
        setcookie ('id_uzivatele', $radek[0], 0, '/') ;
        setcookie ('uziv_jmeno',$radek[1], 0, '/');
        header ("Location: .dirname($_SERVER['PHP_SELF'])."/prihlasen.php]http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/prihlasen.php");
        exit();



Opsss... Co to je? Kopíruju něco trošku jiného, a když to odešlu do diskuse, tak se to v závorce za "header" změní. Jak mám ten skutečný skript kopírovat?
Davex
Profil
Liba Kovářová:
Jak mám ten skutečný skript kopírovat?
Po vložení rozbít začátek adresy značkou h[!]ttp://.

if ($radek) {    
        setcookie ('id_uzivatele', $radek[0], 0, '/') ;
        setcookie ('uziv_jmeno',$radek[1], 0, '/');
        header ("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/prihlasen.php");
        exit();

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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