Autor | Zpráva | ||
---|---|---|---|
mirio Profil |
#1 · Zasláno: 16. 1. 2007, 19:12:11 · Upravil/a: mirio
Ahoj, mám tento superprimitivní "skript"...
<?php if(!isset($_COOKIE["jmeno"])) setcookie ("jmeno", $_POST["jmeno"], time()+31536000); if(!isset($_COOKIE["email"])) setcookie ("email", $_POST["email"], time()+31536000); if(!isset($_COOKIE["url"])) setcookie ("url", $_POST["url"], time()+31536000); echo "<input type='text' name='jmeno' size='40' class='textpole' value='".$_COOKIE["jmeno"]."'><strong> Jméno</strong>"; echo "<input type='text' name='email' size='40' class='textpole' value='".$_COOKIE["email"]."'> E-mail"; echo "<input type='text' name='url' size='40' class='textpole' value='".$_COOKIE["url"]."'> Www (včetně [url=http://)"; ]http://)"; [/url] echo "<br><input type='submit' value='Odeslat'>"; ?> ..., kde si zkouším dělat s cookies, ale nefunguje. Přitom, když $_POST["cokoli"] nahradím jakoukoli hodnotou (třeba "1"), tak to funguje. Nerozumím tomu. Díky za rady. |
||
Aesir Profil |
#2 · Zasláno: 16. 1. 2007, 21:35:15 · Upravil/a: Aesir
mirio:
Nějak nevidím, že byste ten formulář měl mezi tagy <form> a </form>, jestli se nepletu, tak tlačítko submit netuší vůbec co má odeslat a jakým způsobem, tzn. ve vašem případě POSTem. |
||
habendorf Profil |
#3 · Zasláno: 16. 1. 2007, 21:37:21
tlačítko submit netuší vůbec co má odeslat a jakým způsobem
... a kam. |
||
mirio Profil |
#4 · Zasláno: 16. 1. 2007, 21:45:42 · Upravil/a: mirio
Jo, omlouvám se, je to takhle::
<?php if(!isset($_COOKIE["jmeno"])) setcookie ("jmeno", $_POST["jmeno"], time()+31536000); if(!isset($_COOKIE["email"])) setcookie ("email", $_POST["email"], time()+31536000); if(!isset($_COOKIE["url"])) setcookie ("url", $_POST["url"], time()+31536000); echo "<form name='formular' action='./skripty/komentare/komentar_add_test.php' method='POST'>"; echo "<input type='text' name='jmeno' size='40' class='textpole' value='".$_COOKIE["jmeno"]."'><strong> Jméno</strong>"; echo "<input type='text' name='email' size='40' class='textpole' value='".$_COOKIE["email"]."'> E-mail"; echo "<input type='text' name='url' size='40' class='textpole' value='".$_COOKIE["url"]."'> Www (včetně [url=http://)"; ]http://)"; [/url] echo "<br><input type='submit' value='Odeslat'>"; echo "</form>"; ?> |
||
tiso Profil |
#5 · Zasláno: 16. 1. 2007, 23:27:02
mirio
Predpokladám že skript spracúva sám seba. Potom sa pri prvom spustení vytvoria cookies bez hodnoty, lebo neexistujú post hodnoty a pri odoslaní formulára sa už cookies nemenia, lebo nastavené sú... Chyba v logike skriptu... |
||
mirio Profil |
#6 · Zasláno: 16. 1. 2007, 23:58:45 · Upravil/a: mirio
To jsem si myslel, kam tedy řádky setcookie umístit? Až do skriptu, který zpracovává data a ukládá do databáze?
|
||
tiso Profil |
#7 · Zasláno: 17. 1. 2007, 00:24:27
mirio
Skôr napíš čo chceš vlastne dosiahnuť... |
||
mirio Profil |
#8 · Zasláno: 17. 1. 2007, 08:12:31
Trošičku inteligentnější formulář - aby komentující čtenář mého blogu vyplnil údaje ve formuláři jen jednou a při příštím komentování už by to měl předvyplňěno, právě díky cookies...
|
||
tiso Profil |
#9 · Zasláno: 17. 1. 2007, 10:20:55
mirio
Tak potom na začiatok zmeň podmienku s if(!isset($_COOKIE[...] na if(isset($_POST[...] |
||
mirio Profil |
#10 · Zasláno: 17. 1. 2007, 11:19:00
Změnil jsem to na tohle a pořád nic...
if(isset($_POST["jmeno"])) setcookie ("jmeno", $_POST["jmeno"], time()+31536000); if(isset($_POST["email"])) setcookie ("email", $_POST["email"], time()+31536000); if(isset($_POST["url"])) setcookie ("url", $_POST["url"], time()+31536000); |
||
mirio Profil |
#11 · Zasláno: 17. 1. 2007, 13:39:17 · Upravil/a: mirio
Teď mě napadá, existuje vůbec nějaký způsob, jak zpracovat cookies, když se mi metoda POST odkazuje na jiný script? Cookies budou asi uložené pro ten skript, kam POST směřuje, ne?
EDIT: Asi to půjde pomocí JS nebo ne? Já už fakt nevím... :-(( |
||
Joker Profil |
#12 · Zasláno: 17. 1. 2007, 13:56:16 · Upravil/a: Joker
mirio
Cookies nejsou vázané na konkrétní skript, ale na doménu, takže v jiném skriptu na stejné doméně by měly fungovat. K chybě: Zkuste se podívat, jestli tam ty cookies opravdu máte (ve slušném prohlížeči by to neměl být problém: Opera: Nástroje - pokročilé - cookies, Firefox: Nástroje - možnosti, soukromí, cookies, správce cookies) a jaký je jejich obsah |
||
mirio Profil |
#13 · Zasláno: 17. 1. 2007, 14:23:12 · Upravil/a: mirio
Jsou tam! Ale zarazila mě jedna věc a to řádek "cesta", ona k těm cookies existuje nějaká "cesta"? Může to být tím, že skript pro formulář a skript pro zpracování metody POST jsou každý v jiném adresáři? Pokud ano, jak se k těm zpropadeným sušenkám dostat? :-))
EDIT: Tak už to vidím, je tam argument path, jdu si s tím zkusit pohrát... |
||
mirio Profil |
#14 · Zasláno: 17. 1. 2007, 14:51:36
Ufffff, VÝBORNĚ!!! Už to funguje, mé formuláře jsou zase o něco chytřejší a já také. :-))
Díky všem! |
||
Joker Profil |
#15 · Zasláno: 17. 1. 2007, 14:53:51
Ale zarazila mě jedna věc a to řádek "cesta", ona k těm cookies existuje nějaká "cesta"?
Jistěže. Cookies nejsou nic jiného, než malé textové soubory, uložené na disku. Respektive v případě Opery jsou všechny cookies uložené v souboru cookies4.dat Jestli tam jsou, tak nevím, proč by se neměly načíst... ještě se dá zkusit var_dump($_COOKIE) a podívat se, jestli se načetly. |
||
mirio Profil |
#16 · Zasláno: 17. 1. 2007, 15:26:54 · Upravil/a: mirio
Problém byl v té cestě ke cookies a v místě uložení skriptu, který je pak vyvolával - každý byl někde jinde. Musel jsem nastavit cestu, kde se mají cookies vytvářet. Vaše rada mě k tomu nasměrovala, děkuji!
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0