Autor | Zpráva | ||
---|---|---|---|
nightrider Profil |
#1 · Zasláno: 11. 2. 2009, 00:43:08
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 |
#2 · Zasláno: 11. 2. 2009, 08:44:08
|
||
Darkweaver Profil |
#3 · Zasláno: 11. 2. 2009, 09:02:55
|
||
nightrider Profil |
#4 · Zasláno: 11. 2. 2009, 21:06:46
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 |
#5 · Zasláno: 11. 2. 2009, 21:19:21 · Upravil/a: nightrider
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 |
#6 · Zasláno: 11. 2. 2009, 21:33:31 · Upravil/a: nightrider
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 |
#7 · Zasláno: 11. 2. 2009, 21:51:49
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 * |
#8 · Zasláno: 11. 2. 2009, 22:03:00
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 * |
#9 · Zasláno: 11. 2. 2009, 22:04:52
Promin jeste se musis zeptat jestli $_COOKIE[$ip] vubec existuje...
|
||
nightrider Profil |
#10 · Zasláno: 11. 2. 2009, 22:10:12
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 |
#11 · Zasláno: 11. 2. 2009, 22:13:32 · Upravil/a: nightrider
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 * |
#12 · Zasláno: 12. 2. 2009, 19:16:46
ano musis tam dat jeste tu podminku pod tim.... nestaci ten jedinej řádek s tvorbou cookies
|
||
nightrider Profil |
#13 · Zasláno: 12. 2. 2009, 19:22:25 · Upravil/a: nightrider
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 |
#14 · Zasláno: 13. 2. 2009, 09:41:20
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 |
#15 · Zasláno: 13. 2. 2009, 14:09:25 · Upravil/a: nightrider
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 |
#16 · Zasláno: 13. 2. 2009, 16:33:05
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 |
#17 · Zasláno: 14. 2. 2009, 01:22:40 · Upravil/a: nightrider
Nic nevypíše ani na echu. Je to nějaké pos.... nechci urazit,ale jste si jisti tím postupem?
|
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0