Autor Zpráva
peter_r
Profil
potrebujem zabrániť odoslaniu formulára s prázdnymi input poliami, určiť ktoré polia sú povinné a nesmú byť prázdne, skúšal som niečo hľadať aj v knihe ale nič, vlastne neviem čo mám hľadať, prosím o radu. Ďakujem
blaaablaaa
Profil
peter_r:
Stačí přidat atribut required.
peter_r
Profil
blaaablaaa:
ďakujem veľmi pekne, ja som to už chcel riešiť cez nejaké podmienky if ...
Firibix
Profil
Reakce na blaaablaau:
To bude fungovat jen do té doby, než si někdo v prohlížeči otevře nástroje pro vývojáře a ten atribut odmaže. Pak mu nic nebrání prázdný formulář odeslat.

Reakce na petera_r:
ja som to už chcel riešiť cez nejaké podmienky if
Přesně tak se to má řešit. Vstupu od uživatele nelze nikdy důvěřovat, vždy si ho musíš na serveru sám zkontrolovat. V závislosti na tom, jaký programovací jazyk či framework používáš, bys tedy měl podmínkami ošetřit, aby tvá aplikace nepřijala prázdná data.

Jako bonus pro uživatele přidej i atribut required, který zmínil blaaablaaa. Návštěvníka pak upozorní na prázdné povinné pole sám prohlížeč ještě před tím, než formulář vůbec odešle.
blaaablaaa
Profil
peter_r:
Jak píše Firibix, zabrání to jen odeslání, je vždy potřeba toto ověřit i na serveru před zpracováním dat.
lionel messi
Profil
peter_r:

Majme inputy s name jmeno a gdpr.

Na strane servera v PHP trebárs takto:

$chyby = [];

$povinna_policka = ["jmeno" => ["chybova_hlaska" => "Pole jméno musí být vyplněno"],
  "gdpr" => ["chybova_hlaska" => "Musíte souhlasit s podmínkami zpracování osobních údajů."]];
  
foreach ($povinna_policka as $nazev_pole => $udaje_pole) {
  if (!isset($_POST[$nazev_pole])) {
    $chyby[] = $udaje_pole["chybova_hlaska"];
  }
}

if ($chyby) {
  //tu bude výpis chýb, napr. pomocou implode
} else {
  //tu bude spracovanie formulára
}
peter_r
Profil
lionel messi:

ďakujem, aj keď je to na mňa veľa, odskúšam to a dúfam že to pochopím
Firibix
Profil
Reakce na lionela messiho:
Co se stane, když uživatel nechá prázdné <input type="text" name="jmeno">?
blaaablaaa
Profil
peter_r:
Ten skript nepoužívej, kontroluje jen, zda daná políčka byla ve formuláři, ne zda byla vyplněna.
Keeehi
Profil
No stačí vyměnit !isset za empty a fungovat bude.
Bubák
Profil
Firibix:
Vstupu od uživatele nelze nikdy důvěřovat
V podstatě nelze důvěřovat ničemu, co přichází od uživatele, třebas referrer, user agent, ...
Firibix
Profil
Reakce na Bubáka:
Ano, tomu, co přichází od uživatele, se obvykle říká vstup.
Bubák
Profil
Zřejmě jsem se nepřesně vyjádřil, šlo mi o to, že se nedá věřit nejen formulářovým datům od uživatele, ale vůbec ničemu, co uživatel odesílá, na to se občas zapomíná.

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