Zdravím!
Začal jsem experimentovat s cookies a na internetu našel jednoduchý příklad, který mi ale tady nefunguje:
<!DOCTYPE html>
<?php
if (!IsSet($pocetPristupu))
$pocetPristupu = 0;
$pocetPristupu++;
SetCookie("pocetPristupu", $pocetPristupu, Time()+3600);
?>
<HTML>
<HEAD>
<TITLE>Vítejte na serveru s podporou koláčků</TITLE>
</HEAD>
<BODY>
<?php
if (IsSet($_COOKIE["pocetPristupu"])):
if ($pocetPristupu==1):?>
<H1>Vítejte nový uživateli</H1>
<?php else:?>
<H1>Ahoj starý brachu -- my už se známe</H1>
Na našem serveru jste již po <?php echo $pocetPristupu?>.
<?php endif?>
<?else:
echo "cookie nepřijmuta";
endif?>
</BODY>
</HTML>
Když opakovaně načítám tuto stránku, stále se vypisuje "Vítejte nový uživateli", tj. pocetPristupu je pořád 1.
Je v kódu nějaká chyba nebo na tomto webu se s cookies nedá pracovat?
zkuste v tom SetCookie dát malé to s na začátku (setCookie)
Beru nazpět, funguje to i s tím velkým S na začátku, jdu kouknout na ten kód u mě na hostingu
Tak, tady máte funkční úpravu:
<!DOCTYPE html>
<?php
if (!IsSet($_COOKIE['pocetPristupu']))
$pocetPristupu = 0;
$pocetPristupu = $_COOKIE['pocetPristupu']+1;
setCookie("pocetPristupu",$pocetPristupu,time()+100000);
?>
<HTML>
<HEAD>
<TITLE>Vítejte na serveru s podporou koláčků</TITLE>
</HEAD>
<BODY>
<?php
if (IsSet($_COOKIE["pocetPristupu"])):
if ($_COOKIE['pocetPristupu']==1):?>
<H1>Vítejte nový uživateli</H1>
<?php else:?>
<H1>Ahoj starý brachu -- my už se známe</H1>
Na našem serveru jste již po <?php echo $pocetPristupu?>.
<?php endif?>
<?else:
echo "cookie nepřijmuta";
endif?>
</BODY>
</HTML>
Funguje to! Patriku, moc děkuji. Při ladění jsem už trochu znejistěl, zda se na tomto webu vůbec smí s cookies pracovat, ale teď mám jistotu, že jakákoliv nefunkčnost je jen chybou mého kódu.
jj, a nemáte vůbec zač :) taky jsem si té chyby předtím nevšiml, ale vím, že tu můžete pracovat nejspíš se vším v PHP (nwm, jestli i s mail()), ale pak jsem si všiml, že to $pocetPristupu neni nikde předem definované, takže to nemá co dosadit za hodnotu.