Autor | Zpráva | ||
---|---|---|---|
meeee Profil * |
#1 · Zasláno: 21. 1. 2013, 16:59:31 · Upravil/a: meeee
Dobrý den,
Chtěl bych se zeptat, zda neexistuje nějaká šikovná funkce, která udělá to, že uloží do session hodnotu jen při prvním načtení stránky. Potřebuji, aby když se stiskne submit (a načte se stránka znovu), tak aby se do session znovu nic neukládalo. já to mám momentálně udělané takto $neco=$_POST["neco"]; if($neco!=1) { $_SESSION['priklad']; } echo "<form method='post'><input type='hidden' name='neco' value=1></form>"; //pokračování kódu mlouvam se, ze pisi blbosti, naopak to tam zapíše vždy, i po stisknutí tlačítka submit. |
||
nethor Profil |
#2 · Zasláno: 21. 1. 2013, 17:55:52
$_SESSION['priklad'] ; // neudělá vůbec nic $_SESSION['priklad'] = $neco; |
||
meeee Profil * |
#3 · Zasláno: 21. 1. 2013, 18:10:03
Aha, dyt to tak mam, jen jsem to tu napsal špatně. Ještě jednou se omlouvám, že jsem napsal blbost. Ano, toto byl jen příklad a napsal jsem ho špatně. Ve svém programu to tak mám.
|
||
Tori Profil |
#4 · Zasláno: 21. 1. 2013, 18:29:32
Pokud není odeslaný formulář, bude mít
$neco za prvním řádkem hodnotu null , což se nerovná 1. Proč ověřujete, že se hodnota z formuláře nerovná výchozí hodnotě toho políčka - očekáváte, že někde změní hodnotu skrytého pole a pak to odešle?
|
||
meeee Profil * |
#5 · Zasláno: 21. 1. 2013, 19:08:38
Jde o to, že na této stránce se bude opakovaně mačkat submit. a funguje (teda alespoň mělo by) takto:
$neco=$_POST["neco"]; //Načte se hodnota jedna, ovšem pouze po kliknutí na submit if($neco!=1) { //pokud $neco je jedna, tak se už opakovaně do session (o řádek níže) číslo neuloží, takže se uloží pouze jednou. $_SESSION['priklad']=5; } echo "<form method='post'><input type='hidden' name='neco' value=1></form>"; //diky tomuto bude po kliknuti na submit $neco 1 a uz se tedy znova nebude provadet if. |
||
Tori Profil |
Funguje to trochu jinak, než si představujete:
$neco=$_POST["neco"]; // Načte se buď hodnota z formuláře (pokud byl odeslaný) nebo NULL if($neco!=1) { // pokud $neco není jedna (tj. i v případě, že formulář nebyl odeslaný), $_SESSION['priklad']=5; // uloží se do session číslo } echo "<form method='post'><input type='hidden' name='neco' value=1></form>"; // pokud byl odeslaný formulář (s jakoukoli hodnotou) a zároveň ještě není uložené číslo do session: if (!empty($_POST['neco']) && !isset($_SESSION['priklad'])) { $_SESSION['priklad'] = 5; } |
||
Časová prodleva: 11 let
|
0