Autor Zpráva
meeee
Profil *
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
Problém je v tom, že to tam to cislo nezapise nikdy.


mlouvam se, ze pisi blbosti, naopak to tam zapíše vždy, i po stisknutí tlačítka submit.
nethor
Profil
 
 
 $_SESSION['priklad'] ; // neudělá vůbec nic
  
 $_SESSION['priklad'] = $neco;
meeee
Profil *
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
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 *
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.
Tak si to představuji, ale z nějakého důvodu nefunguje...
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>";
Asi jste spíš chtěl něco takového:
// 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;
}

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