« 1 2 3 »
Autor Zpráva
Čeluk
Profil
Mám formulář který mi uloží jméno po odeslání. Takže ho nemusím příště zadávat. Proč to ale přestane po zavření prohlížeče a znovuotevření fungovat? Chtěl bych aby to fungovalo třeba i několik dní. Jak na to?

<?php
session_start();
if(array_key_exists('sub',$_POST))
$_SESSION['name']=$_POST['name'];
?>
<html>
<form  method="post">
<input type='text' name="name" value="<?php
session_start();
$r=$_SESSION['name'];
echo $r;
?>">
<input type='submit' name='sub' value='send my info'>
</html>
Taps
Profil
Čeluk:
Podivej se na cookie
Čeluk
Profil
Taps:
Přidal jsem tam setcookie("name", time() - 3600);
Ale stále to nefunguje.


Mám to takto ale nejde to:

<?php
session_start();
setcookie("name", time() - 3600); 
if(array_key_exists('sub',$_POST))
$_SESSION['name']=$_POST['name'];
?>
<html>
<form  method="post">
<input type='text' name="name" value="<?php
session_start();
$r=$_SESSION['name'];
echo $r;
?>">
<input type='submit' name='sub' value='send my info'>
</html>
Taps
Profil
Čeluk:
Nejdrive cookie musis nastavit a pak nacist
Viz napr.www.linuxsoft.cz/article.php?id_article=436
Čeluk
Profil
Taps:
Takto? To mi vypisuje nějaká čísla.

<?php
session_start();
SetCookie ("name", time()+10*60);
if(array_key_exists('sub',$_POST))
$_SESSION['name']=$_POST['name'];
?>
<html>
<form  method="post">
<input type='text' name="name" value="<?php
session_start();
$r=$_SESSION['name'];
echo $r;
echo $_COOKIE["name"];
?>">
<input type='submit' name='sub' value='send my info'>
</html>
Tomáš123
Profil
Čeluk:
Namiesto hodnoty priradzuješ vypršanie. Pozri sa na poradie parametrov funkcie setcookie().
Čeluk
Profil
Tomáš123:
Já ten kód prostě dohromady nedám. Nezlobte se že jsem otravoval. Pěkný den přeji. Dělal jsem se s tím do 2 do noci a prostě to neumím udělat. ach jo...
Ale už Vás otravovat nebudu. No nic..
Taps
Profil
Čeluk:
Neni to nic sloziteho, tady mas prakticky priklad www.phpnerds.com/article/using-cookies-in-php/2
Čeluk
Profil
<?php 
SetCookie("user", "pavel", Time() + 7*24*60*60);
?>


<html>
<form  method="post">
<input type='text' name="name" value="<?php 
echo $_COOKIE["user"];
?>">
<input type='submit' name='sub' value='send my info'>
</html>


Jak to udělat aby se po odeslání formuláře vložilo aktuální jméno místo toho pavel?
Tomáš123
Profil
Čeluk:
Jednoducho tam dosadíš obdržanú hodnotu z formulára:
<?php
  if(isset($_POST['name'])) {
    setcookie("user", $_POST['name'], time() + 7 * 24 * 60 * 60);
  }
?>
<!DOCTYPE html>
<form  method="post">
  <input type="text" name="name"
<?php
  if(isset($_COOKIE['user'])) {
    echo "value=\"$_COOKIE[user]\"";
  }  
?>>
  <input type="submit" value="send my info">
</form>
Alternatívne ide riadky 8 – 13 zapísať pomocou ternárneho operátora:
<input type="text" name="name"<?php echo ((isset($_COOKIE['user']) ? " value=\"$_COOKIE[user]\"" : ""); ?>>
xaverista
Profil
Čeluk:
Jak to udělat aby se po odeslání formuláře vložilo aktuální jméno místo toho pavel?
SetCookie("user", $_POST['name'], Time() + 7*24*60*60);
Čeluk
Profil
xaverista:
Ale po zavření prohlížeče a otevření to už jméno neví.

<?php 
SetCookie("user", $_POST['name'], Time() + 7*24*60*60);
?>


<html>
<form  method="post">
<input type='text' name="name" value="<?php 
echo $_COOKIE["user"]; // vypíše hodnotu cookie jménem user, pokud je nastavena
?>">
<input type='submit' name='sub' value='send my info'>
</html>
Čeluk
Profil
Tomáš123:
To funguje skvěle. Když to ale vložím do kódu tak se mi zobrazí php kód v políčku na jmého.

<input type="text" tabindex="1" name="username" id="username" size="25" value="<?php
  if(isset($_COOKIE['user'])) {
    echo "value=\"$_COOKIE[user]\"";
  }  
?>" class="inputbox autowidth"  required />

Místo jména se objeví ten PHP kód proč?
Taps
Profil
Čeluk:
soubor, ve kterém máš níže uvedený kod musí mít koncovku php
<input type="text" tabindex="1" name="username" id="username" size="25" value="<?php
  if(isset($_COOKIE['user'])) {
    echo "value=\"$_COOKIE[user]\"";
  }  
?>" class="inputbox autowidth"  required />
Tomáš123
Profil
Čeluk:
Do atribútu value (na riadku 1) vpisuješ na riadku 3 ďalšie value... Vzniká ti:
<input type="text" tabindex="1" name="username" id="username" size="25" value="value="..."" class="inputbox autowidth" required />.
Čeluk
Profil
Tomáš123:
Upravil jsem to ale stále to vypisuje PHP kód v políčku.

<input type="text" tabindex="1" name="username" id="username" size="25" value="<?php
 if(isset($_COOKIE['user'])) {
 echo $_COOKIE['user'];
 } 
?>" class="inputbox autowidth"  required />



Aha už to vidím. Ta stránka je v HTML. Dá se s tím něco dělat? Kromě převodu na PHP?
Xanomes
Profil
Čeluk:
Aha už to vidím. Ta stránka je v HTML. Dá se s tím něco dělat? Kromě převodu na PHP?
To je tak velký problém přepsat koncovku souboru :) ?
xaverista
Profil
Xanomes:
To je tak velký problém přepsat koncovku souboru :) ?
Víš kolik je na to potřeba času? Si nedokážeš ani představit...
Čeluk
Profil
xaverista:
Jde o to že se mi ten soubor .html načítá ve fóru ve formuláři na odeslání, když ho přepíšu na .php tak mi to samozřejmě fungovat nebude. Tak blbej nejsem že bych neuměl přepsat koncovku.
Lonanek
Profil
Tak to je opravdu nepřekonatelný problém to přepsat. Musí se přepsat koncovka a ještě k tomu form v souboru fóra...
Čeluk
Profil
Lonanek:
Když ale přepíšu soubor na .PHP tak mi to pak nebude zobrazovat ten zbývající .html kód nebo bude?
Tomáš123
Profil
Čeluk:
Dá se s tím něco dělat? Kromě převodu na PHP?
Nie. PHP funguje iba v súboroch s príponou .php. V prvom príspevku si mal funkčný skript (zrejme správne uložený); zmenilo sa niečo?

HTML kód sa v PHP súbore samozrejme nestarí...

xaverista:
Zbytočný šum. Toto nie je chat.
Xanomes
Profil
Tomáš123:
Čeluk:
Když ale přepíšu soubor na .PHP tak mi to pak nebude zobrazovat ten zbývající .html kód nebo bude?
Ale jistě že bude. K čemu by jinak .php a <?php bylo?
<?php
if(isset($_GET['jmeno'])) {
    $jmeno = $_GET['jmeno'];
} else {
    $jmeno = "anonymní";
}
?>
<!doctype html>
<title>Testovací stránka</title>
<meta charset="utf-8">
<h1>Vítej zpět, uživateli <?php echo $jmeno; ?>!</h1>
Lonanek
Profil
Doporučil bych upravit:
řádek 3 na $jmeno = htmlspecialchars($_GET['jmeno']);
nebo
řádek 11 na <h1>Vítej zpět, uživateli <?php echo htmlspecialchars($jmeno); ?>!</h1>
Xanomes (nepřihlášen)
Profil *
Lonanek:
Jistě, to byla jen ukázka, že to jde :)
Čeluk
Profil
Xanomes (nepřihlášen):
Ono mi to stejně nefunguje. Nechápu to. Stránka se načítá v jiné html stránce ale i když přepíši obě na .php tak mi to stejně nefunguje. Musí to být něčím jiným. Ale stejně děkuji moc za pomoc. Je to phpbb fórum. Kdyby to chtěl někdo udělat tak bych mu za to 500 kč dal. Víc si dovolit nemůžu.
Xanomes
Profil
Čeluk:
Těžko soudit, když nevíme, jak to tam vkládáš :) Musíš někde dělat chybu
Čeluk
Profil
Xanomes:
I když vložím

<?php echo "pokus"; ?> tak se taky nic nestane. Prostě tu stránku uložím jako .php a stejně v tom .php kód nefunguje.
Lonanek
Profil
Čeluk:
Je to phpbb fórum.
V phpBB fórum se echo nepoužívá. Šablony jsou tvořeny jinak, pro vykreslení se používají proměnné.
Čeluk
Profil
Lonanek:
Aha, a dalo by se to tedy nějak upravit na proměnou ?
« 1 2 3 »

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0