Autor Zpráva
Jur
Profil *
Ahoj,
Co se týče PHP, jsem v tom absolutní začátečník.
Mám problém s jedním kodem
Do inputu se zadá nějaký řetězec, který by se měl automaticky uložit do COOKIE. (a vypíše ho)
Představoval jsem si to nějak takhle:

<form method="get">
<input type="text" name="name">
<input type="submit" name=" send ">
</form>
if (!isset($_COOKIE["id"])){

SetCookie("id","",time()+10*60);
}
if (isset($_GET["name"])){

$_COOKIE["id"] .= $_GET["name"];

 echo $_COOKIE["id"];
}
?>
Radek9
Profil
Jur:
Zhruba takhle se pracuje se sessionama, cookie musíš přepsat pomocí setCookie. Tzn., že tam dáš starou hodnotu a přidáš to $_GET["name"]:
setCookie("id", $_COOKIE["id"].$_GET["name"], time()+600);
Jur
Profil *
Děkuju,
tak jsem si to představoval,
ale znaky vypisuje opožděně, proč?
code
if (!isset($_COOKIE["id"])){
SetCookie("id","",time()+600);
}
if (isset($_GET["name"])){

setCookie("id", $_COOKIE["id"].$_GET["name"], time()+600);

 echo $_COOKIE["id"];
}
Radek9
Profil
Jur:
Cookie se projeví až po aktualizaci stránky. Zkus místo toho použít session. To se na tohle hodí víc.
Jur
Profil *
*znaky se vypisují opožděně. (tj když se poprvé načtne stránka, já vypíšu nějakou hodnotu do inputu, následně kliknu na submit, tak se nic nestane, při druhým kliknutí se ale už vypíše požadovaná hodnota)


U session už jsem to dělal, něco takového
session_start();


if (isset($_GET["name"])){

$_SESSION[id] .= $_GET["name"];

 echo $_SESSION[id];
}
Ale rád bych věděl, jak se to dělá v COOKIES
Someone
Profil
Jur:
Refreshuj pomocí Headeru.:
Header("Location: neco.php");
Ugo
Profil
podle mě není třeba 10x refreshovat. Přesvědči se, zda nastavuješ cookie na správném místě (před výpisem) a k setCookie přidej ještě klasické nastavení proměnné, cookies moc nepoužívám, ale tohle fungovat jednoduše musí i kdyby tam bylo něco navíc

setCookie("id", $_COOKIE["id"].$_GET["name"], time()+600);
$_COOKIE["id"] = $_COOKIE["id"].$_GET["name"];
echo $_COOKIE["id"];

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0