Autor Zpráva
nightrider
Profil
Mám diskusní forum a s různýma podmínkama a teď dělám něco podobnýho jako je tady a to: pokud uživatel zašle příspěvek, tak se zapíše do cookie.

Problém je ten, že nevím jak ho zapsat jenom na 30 vteřin :-(
Werewolf
Profil
Snad umíš anglicky..
Darkweaver
Profil
A nebo česky
nightrider
Profil
Taky dobrý :-) i když mi něco nejde a bouchám do klávesy, tak dokážete rozesmát. Děkuju všem a podívám se jak na English, tak i na českou :-)
nightrider
Profil
Jen nechápu tohle:
<?php
$value = 'something from somewhere';

setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  /* expire in 1 hour */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1);
?> 


a stane se něco když nedám adresu serveru?

Můžu to zapsat takhle?
setcookie ("spam", "$ip", time() + 30);
nightrider
Profil
setcookie ("spam", $ip, time() + 30, $_SERVER[SERVER_NAME]);

Proč to nefunguje :-( Jak to mám udělat bez názvu serveru a bez stránky?
AM_
Profil
obávám se, že cookie se mažou až po vypnutí prohlížeče. Takže ten timeout budeš muset imho řešit jinak.
mc_kropy
Profil *
co třeba takhle?

setcookie ($ip, time() + 30 , time() + 30);
//Pak už se jenom budeš ptát


if ($_COOKIE[$ip]>time()) 
echo "Pis";
else
echo "Nespamuj";
mc_kropy
Profil *
Promin jeste se musis zeptat jestli $_COOKIE[$ip] vubec existuje...
nightrider
Profil
ja ho zapisuju právě tímhle a myslel jsem že ho zapíše jen na dobu 30 vteřin :-(
$_SESSION['spam'] = $ip;

// O něco takového se snažim
setcookie ("spam", $ip, time() + 30, $_SERVER[SERVER_NAME]);
nightrider
Profil
setcookie ($ip, time() + 30 , time() + 30); < tohle nefunguje :-(

Když to dam takhle: $_SESSION['spam'] = $ip; tak vše maká, ale odešle jeden a pak nemůže vložit do restartu prohlížeče nic
mc_kropy
Profil *
ano musis tam dat jeste tu podminku pod tim.... nestaci ten jedinej řádek s tvorbou cookies
nightrider
Profil
NEFUNKČNÍ :-( KDE JE FURT CHYBA?

setcookie ($ip, time() + 30 , time() + 30); < tohle nefunguje :-( 
if ($_COOKIE[$ip]>time())  {
echo "Pis";
} else { 
echo "Nespamuj";
}
AM_
Profil
Neposíláš předtím nějaký výstup? setcookie jde v hlavičce, takže nemůže jít před výstupem.
nightrider
Profil
předtím mám jen ověřování polí metodou if a pak mám:

if ($_COOKIE[$ip]>time())  {
echo "Pis";
} else { 
echo "Nespamuj";
}


potom následuje ještě jeden if který pustí jen pokud je vše splněno, tak se provede zápis do cookie a sql:
setcookie ($ip, time() + 30 , time() + 30); a potom uložení do tabulky sql
AM_
Profil
Takže předtím máš výstup (echo pis|nespamuj). Musíš to prostě řešit tak, aby setcookie proběhlo nejdřív.
Nejlepší všeobecně je všechny informace, které chceš "vyechovat", ukládat do proměnných, a výstup stránky sestavit až ke konci PHP kódu (takže třeba
<?php 
if ($_COOKIE[$ip]>time())  {
  $zprava= "Pis";
} else { 
  $zprava= "Nespamuj";
}
//potom následuje ještě jeden if který pustí jen pokud je vše splněno, tak se provede zápis do cookie a sql: 
setcookie ($ip, time() + 30 , time() + 30); a potom uložení do tabulky sql

...
?>
<html><head>
...
<?php echo $zprava; ?>
...
</html>
nightrider
Profil
Nic nevypíše ani na echu. Je to nějaké pos.... nechci urazit,ale jste si jisti tím postupem?
Toto téma je uzamčeno. Odpověď nelze zaslat.