Autor Zpráva
Pearljam
Profil
Objevil jsem problém když mi přišel nevyplněný kontaktní formulář kde nebyla ani email adresa. Zjistil jsem že to dělá Safari, úplně ignoruje required. Jak tento problém vyřešit ? Díky moc za radu.
Keeehi
Profil
Pearljam:
Na required se nemůžeš nikdy spolehnout. Pokud chceš mít jistotu vyplnění, musíš to kontrolovat na serveru.
Pearljam
Profil
Keeehi:
Problém dělá pouze prohlížeč Safari... Kontrolovat na serveru, tohle moc nechápu jak to provést ? Potřeboval bych aby se formulář prázdný nemohl odeslat a upozornil na povinný input před odesláním.
Slark
Profil
Proto to musíte kontrolovat v PHP nebo jiném serverovém jazyku, který Vám formulář zpracuje. Na JavaScript se nemůžete spolehnout a klient ho může v prohlížeči zakázat.

Ještě viz. Required Attribute Not work in Safari Browser
Keeehi
Profil
Pearljam:
Kontrolovat na serveru, tohle moc nechápu jak to provést ?
A jak ten email odesíláš?

Pokud to na serveru kontrolovat nebudeš, budeš stejně dostávat prázdné emaily. Třeba od robotů, kteří procházejí stránky a odesílají formuláře. Ty nějaké required vůbec nezajímá.
Pearljam
Profil
Aha, nepochopil jsem správně odpověď "... musíš to kontrolovat na serveru", ano používám PHPmailer k odeslání dat z formuláře. Mohu pomocí PHPmailer nahradit v HTML required, je to možné ?
Keeehi
Profil
Pearljam:
Ne, ale v kódu, před tím než email odešleš, si zkontroluješ, jestli jsou vyplněna všechna povinná pole. Pokud ano, odešleš email, pokud ne email neodešleš, ale uživateli zobrazíš zpátky formulář a necháš ho to doplnit.
Pearljam
Profil
Keeehi:
Ano, děkuji přesně tak jak je to napsáno, je to možnost aby formulář byl vyplněný podle požadavku. Píše se to přímo v PHPmailer nebo je někde k vidění nějaký návod ?
Tomášeek
Profil
Pearljam:
PHPMailer se podle svého jména stará jen o odeslání mailu. Formuláře neověřuje.

Ty potřebuješ u povinných polí kontrolovat minimálně, jestli jsou vyplěněná (= !empty), u mailu se hodí kontrolovat i formát (filter_var), aby neprošel "mail" ve tvaru "abcd". Na kontolu třeba PSČ/tel.č. pak slouží regulární výrazy, funkce preg_match.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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