Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

$_POST i $_COOKIE - kako se postize

[es] :: PHP :: $_POST i $_COOKIE - kako se postize

[ Pregleda: 1836 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Jbyn4e

Član broj: 422
Poruke: 6049
*.sbb.co.yu



+256 Profil

icon $_POST i $_COOKIE - kako se postize06.07.2004. u 15:13 - pre 210 meseci
Evo bas danas isitujem nesto, i setih se ogranicenja oko cookie-a - dakle, kad postavljate kuki sa setcookie, ne menja se $_COOKIE - vec mora ponovo da se ucita stranica kako bi se $_COOKIE ponovo "napunio" novim vrednostima.
Primer - ovde necete videti da se promenio $_COOKIE iako vec jeste:
Code:

<?
$prepost=$_POST['ime'];
$precookie=$_COOKIE['ime'];
if (isset($_POST['ime']) && ($_COOKIE['ime'] != $_POST['ime'])) {
        setcookie ("ime", "", time()-3600,"/","",0);
        setcookie ("ime", $_POST['ime'], time()+3600,  "/","",0);
 }
echo "Prepost=".$prepost.", Precookie=".$precookie.", Sad cookie=". $_COOKIE['ime'];
?>
<form method="POST" action="<? echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="ime">
<input type="submit" value="PROSLEDI">
</form>

U ovom drugom primeru cete videti da se ispisuje "pravi" cookie (ali se gubi _POST jer se ponovo ucitava stranica):
Code:

<?
$prepost=$_POST['ime'];
$precookie=$_COOKIE['ime'];
if (isset($_POST['ime']) && ($_COOKIE['ime'] != $_POST['ime'])) {
        setcookie ("ime", "", time()-3600,"/","",0);
        setcookie ("ime", $_POST['ime'], time()+3600,  "/","",0);
  header("Location: http://" . $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
 exit;
}
echo "Prepost=".$prepost.", Precookie=".$precookie.", Sad cookie=". $_COOKIE['ime'];
?>
<form method="POST" action="<? echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="ime">
<input type="submit" value="PROSLEDI">
</form>

Eto. Mozda nekom zatreba.

P.S. Ima li drugi nacin OSIM ponovnog ucitavanja headera (cookie-a) za prikaz postavljenog cookie-a?
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1042
*.vdial.verat.net



+3 Profil

icon Re: $_POST i $_COOKIE - kako se postize06.07.2004. u 23:01 - pre 210 meseci
Pa tehnicki je neizvodljivo, mada mozes da pretpostavis da ako je setcookie vratio true i ako si vec postavio cookie (tj. da browser prihvata cookie-je) da je cookie dobio novu vrednost. Ako korisnik sam odabira koje cookie zeli da prihvati onda sve pada u vodu (sumnjam da bilo ko to radi rucno)
Owl
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.sbb.co.yu



+256 Profil

icon Re: $_POST i $_COOKIE - kako se postize07.07.2004. u 09:59 - pre 210 meseci
Citat:
_owl_: mada mozes da pretpostavis da ako je setcookie vratio true i ako si vec postavio cookie (tj. da browser prihvata cookie-je) da je cookie dobio novu vrednost.

Da, naravno , ovo stoji, zaboravio sam da je prethodni primer ISKLJUCIVO potreban kada zelimo da se podatak zabelezen u tom cookie-u i ispise na stranici.
Primer:
Code:

<?
$prepost=$_POST['ime'];
$precookie=$_COOKIE['ime'];
if (isset($_POST['ime']) && ($_COOKIE['ime'] != $_POST['ime'])) {
setcookie ("ime", "", time()-3600,"/","",0);
setcookie ("ime", $_POST['ime'], time()+3600,  "/","",0);
  header("Location: http://" . $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
 exit;
}
echo "Prepost=".$prepost.", Precookie=".$precookie.", Sad cookie=". $_COOKIE['ime'];
?>
<form method="POST" action="<? echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="ime" value="<? echo $_COOKIE['ime']; ?>">
<input type="submit" value="PROSLEDI">
</form>

Razlika je u odnosu na prethodni kod sto se input polju dodeljuje vrednost koja se i prikazuje, Ukoliko se ne izvrsi header funkcija, prikazace se prethodna vrednost cookie-a.

Naravno, uz pomoc JS-a bi se mogao (verovatno) iscitati sadrzaj novog cookie-a, ali ovde govorimo o koriscenju iskljucivo PHP-a.
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

[es] :: PHP :: $_POST i $_COOKIE - kako se postize

[ Pregleda: 1836 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.