Autor Zpráva
Čeluk
Profil
Potřebuji aby se při odeslání otázky muselo vyplnit uživatelské jméno. Jinak aby to napsalo , vyplňte uživatelské jméno. Je to phpbb forum. Když ale dám toto:
$post_data['username'] = ($user->data['is_registered']) ? $user->data['is_registered'] : 'Anonymous';
Tak to napíše: Vámi zadané uživ. jméno je již použito, prosím vyberte si jiné.
Ale ať zadám cokoliv tak to napíše znova: Vámi zadané uživ. jméno je již použito, prosím vyberte si jiné.

Nevíte jak to změnit? Něco jako, když je pole username prázdné, napiš toto...
Jcas
Profil
Neměl bys tam mít ==
podmínka porovnání a ne přiřazení
Čeluk
Profil
Jcas:
Dík, ale kde? Můžeš prosím napsat jak by to mělo vypadat?


Jcas:
Když to změním takto:
$post_data['username'] == ($user->data['is_registered']) ? $user->data['is_registered'] : 'Anonymous';
Tak se odpověď odešle a nenapíše to nic.


Jcas:
I když není vyplněné jméno tak se to odešle...
Speedy21
Profil
$post_data['username'] == ($user->data['is_registered']) ? $user->data['is_registered'] : 'Anonymous';
Tak co chceš? podle toho kódu to vypadá, že kontroluješ jestli je uživatel zaregistrovaný...
Čeluk
Profil
Speedy21:
To se formulář odešle i když jméno nevyplním. Jak to udělat aby to nešlo odeslat když nezadám jméno?
Taps
Profil
Čeluk:
V případě použití PHP se formulář odešle vždy, validace probíhá až na straně serveru - tam můžeš kontrolovat úplnost vyplnění údajů. V případě, že nějaký údaj nebude vyplněn, tak návštěvník bude zpět přesměrován na formulář.
Speedy21
Profil
Tak podmínka by mohla vypadat takhle:
if (strlen($post_data['username']) > 3) {

}
Kontroluje to zda je jméno větší než 3 znaky... Potom by to chtělo ještě nějakou HTML/JS ochranu. např do inputu vložit required.
Čeluk
Profil
Speedy21:
Dík , podmínka vypadá skvěle. Proč mi to ale odešle i když jméno nevyplním?
  if (strlen($post_data['username']) > 3) {
    echo "Zadejte jméno";
}
Taps
Profil
Čeluk:
Protože se samotná kontrola provádí až na straně serveru. POkud chceš kontrolovat data před samotným odesláním tak musíš použít javascript.
Čeluk
Profil
Taps:
Aha, a pod čím to hledat na internetu?
Taps
Profil
Čeluk:
Kontrola formulářových polí
Přístup k prvkům formuláře v JS
Označení povinných položek
Speedy21
Profil
Čeluk:
Protože v té podmínce sice vypisuješ aby zadali jméno, ale php kód (funkce), který provádí odeslání není uvnitř podmínky, musíš jej tam přesunout...

Taps
Samotná JS/HTML ochrana nestačí. Musí tam mít i kontrolu na serveru ^.

Jinak pro kontrolu na straně klienta by mělo stačit required, jak jsem již psal.
www.w3schools.com/tags/att_input_required.asp
Taps
Profil
Speedy21:
Já vím, proto jsem mezi odkazy přidal i řešení na úrovni PHP
Čeluk
Profil
Speedy21:
A co k tomu potřebuji k tomuto? www.w3schools.com/tags/att_input_required.asp
Mám najít odesílací formulář?
Taps
Profil
Jen do inputu doplnis vyraz required, nic vic
Čeluk
Profil
Taps:
Funguje to jak má. Díky moc všem. Super
Čeluk
Profil
Sice to nejde na mobilu, ale jsem spokojený. Dík
Tomáš123
Profil
Čeluk:
Sice to nejde na mobilu, ale jsem spokojený
To je dôvod prečo sa nejde spoliehať na ošetrenie na strane klienta. Môžem si to prepísať vo vývojárskych nástrojoch, nemusím mať prehliadač s podporou HTML5, nemusím mať zapnutý JavaScript...

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: