Autor Zpráva
Wiki
Profil
Chcem si urobit web, kde by sa ludia registrovali a mohli by pisat pripomienky (ktore by sa ukladali do db), ako pri pri prihláseni zabezpečím aby pri otvorení ďalšej stránky, zostal užívatel prihlásený? (dá sa to uložiť do nejakej systémovej premennej?)
Hugo
Profil
podivej se do manualu na sessions.
Wiki
Profil
Dobre hugo, a co takto potvrdzovanie cez mail (pred registraciou)?
Hugo
Profil
Posles mail, ve kterem bude URL. Napr. http://server.nekde.cz/login.php?id=NejakeDlouheCislo.

No a v db budes mit u uzivatele nastaven status ceka na registraci a to id, pokud se bude shodovat s tim co bude v URL, tak zmenis status na zaregistrovany.

Samozrejme to jde udelat i tak, ze mu posles registracni udaje (login a heslo) mailem, ale toto se mi zda lepsi.
Anonymní
Profil *
session VS. cookies ??

co je lepsie ??
Hugo
Profil
sessions, protoze cookies se daji vypnout v prohlizeci (samozrejme pokud predavas sessionID pomoci cookies, tak mas pri vypnutych cookies smulu tak i tak).
DoubleThink
Profil *
Určitě SESSION - citlivá data totiž zůstávají na serveru - klient s sebou táhne jenom SESSION ID (buď v cookies nebo za URL adresou)

V nových verzích PHP už se cookies se SESSION ID ukládají samy, takže se programátor nemusí o nic starat (jenom za všechny adresy přidá konstantu SID, kterou PHP v případě neúspěchu zápisu cookies nahradí číslem session - tím je zaručena funkčnost i ve starých browerech)
Anonymní
Profil *
od ktrorej verzie PHP je session ??
vela o tom neviem (s cookies mam viac skusenosti)
je niekde nejaky priblizny zrozumitelny navod ?? (okrem dokumentacie..)
Hugo
Profil
od PHP4 (to je uz snad na vsech serverech). Do PHP3 se museli doinstalovat nainstalovat.
llook
Profil
Celkem srozumitelný snad je článek ze seriálu na Linuxsoftu: http://www.linuxsoft.cz/article.php?id_article=440
Wiki
Profil
Hele mam taku otazocku...

Ak chcem pisat SESSIONy, staci mi toto:
session_start();
$_SESSION["nejaky nazov"] = "nejaka hodnota";

a potom na ich zmazanie session_destroy();

alebo treba nieco viac?
llook
Profil
session_destroy() zruší session, ale nepromaže pole $_SESSION. Na to je třeba dát pozor. Takže po session_destroy(); dávej vždy pro jistotu ještě $_SESSION = array();
Wiki
Profil
THX a lot...

moc ste mi pomohli (aj ked ste ma odkazali na manualy, ale vedel som co hladat...)

Este raz DAKUJEM...
Leo
Profil
"$_SESSION = array();"

Nebo unset(), Leo
llook
Profil
Nějak jsem si matně pamatoval, že jsem někde četl že se nemá používat unset($_SESSION);. Tak jsem to teď dohledal a zjistil jsem, že šlo o něco úplně jiného: session_unregister: Do not unset() $_SESSION itself as this will disable the special function of the $_SESSION superglobal.

Takže session_destroy(); unset($_SESSION); je v pořádku.
tark
Profil *
Spíš by mě zajímalo, proč tady všichni tak opovrhují cookies.. Cookies jsou výborná věc i na přihlašování a chtěl bych vidět, jak bych se session zůstal přihlášený jeden měsíc... :-)

Navíc v cookies nemus být uchováváno heslo.. Stačí uchovávat pouze dvě cookies a ověřovat to nějak takhle..

<?php
if(isset($_COOKIE['cislouzivatele']) && isset($_COOKIE['cookiehash'])) {
if(!intval($_COOKIE['cislouzivatele']))
die('cookie s cislo uzivatele musi mit ciselnou hodnotu..');

// vytahneme z db data
select ... where cislouzivatele=$_COOKIE['cislouzivatele']

// username neexistuje
if(!sql_num_rows($dbconnect))
Header('http://prihlasovaci-stranka.php');

// overime
if($_COOKIE['cookiehash'] != $dbrow['cookiehash'])
Header('http://prihlasovaci-stranka.php');

}
?>

Cookie hash se dá libovolně měnit, můžeme jej vygenerovat třeba touhle fci:

<?php
function NovyCookiehash() {
$hash = rand(1,100000);
$hash.= crypt(rand(1,100000));
$hash = sha1($hash);
return $hash;
}
?>

Cookiehash taky můžeme měnit při přihlášení formulářem (tzn. vyplníme uživatelské jméno a heslo). taky docela dobrý pro bezpečnost...
Toto téma je uzamčeno. Odpověď nelze zaslat.