Autor | Zpráva | ||
---|---|---|---|
peter_r Profil |
#1 · Zasláno: 25. 9. 2020, 07:38:16
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 |
#2 · Zasláno: 25. 9. 2020, 08:19:31
peter_r:
Stačí přidat atribut required. |
||
peter_r Profil |
#3 · Zasláno: 25. 9. 2020, 08:52:02
blaaablaaa:
ďakujem veľmi pekne, ja som to už chcel riešiť cez nejaké podmienky if ... |
||
Firibix Profil |
#4 · Zasláno: 25. 9. 2020, 09:01:30
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 |
#5 · Zasláno: 25. 9. 2020, 09:12:59
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 |
#6 · Zasláno: 25. 9. 2020, 12:02:35
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 |
#7 · Zasláno: 25. 9. 2020, 12:25:15
lionel messi:
ďakujem, aj keď je to na mňa veľa, odskúšam to a dúfam že to pochopím |
||
Firibix Profil |
#8 · Zasláno: 25. 9. 2020, 12:32:03
Reakce na lionela messiho:
Co se stane, když uživatel nechá prázdné <input type="text" name="jmeno"> ?
|
||
blaaablaaa Profil |
#9 · Zasláno: 25. 9. 2020, 12:35:51
peter_r:
Ten skript nepoužívej, kontroluje jen, zda daná políčka byla ve formuláři, ne zda byla vyplněna. |
||
Keeehi Profil |
#10 · Zasláno: 25. 9. 2020, 14:28:09
No stačí vyměnit
!isset za empty a fungovat bude.
|
||
Časová prodleva: 3 dny
|
|||
Bubák Profil |
#11 · Zasláno: 28. 9. 2020, 06:49:29
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 |
#12 · Zasláno: 28. 9. 2020, 10:29:30
Reakce na Bubáka:
Ano, tomu, co přichází od uživatele, se obvykle říká vstup. |
||
Bubák Profil |
#13 · Zasláno: 28. 9. 2020, 23:00:15
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á.
|
||
Časová prodleva: 4 roky
|
0