Autor | Zpráva | ||
---|---|---|---|
Čeluk Profil |
#1 · Zasláno: 17. 2. 2016, 16:00:06
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 |
#2 · Zasláno: 17. 2. 2016, 16:07:29
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'; |
||
Čeluk Profil |
#5 · Zasláno: 17. 2. 2016, 16:24:15
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 |
#6 · Zasláno: 17. 2. 2016, 16:28:22
Č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 |
#7 · Zasláno: 17. 2. 2016, 16:37:16
Tak podmínka by mohla vypadat takhle:
if (strlen($post_data['username']) > 3) { } |
||
Čeluk Profil |
#8 · Zasláno: 17. 2. 2016, 16:43:36
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 |
#9 · Zasláno: 17. 2. 2016, 16:44:50
Č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 |
#10 · Zasláno: 17. 2. 2016, 16:52:37
Taps:
Aha, a pod čím to hledat na internetu? |
||
Taps Profil |
|||
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 |
#13 · Zasláno: 17. 2. 2016, 17:00:02
Speedy21:
Já vím, proto jsem mezi odkazy přidal i řešení na úrovni PHP |
||
Čeluk Profil |
#14 · Zasláno: 17. 2. 2016, 17:23:05
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 |
#15 · Zasláno: 17. 2. 2016, 19:15:17
Jen do inputu doplnis vyraz required, nic vic
|
||
Čeluk Profil |
#16 · Zasláno: 17. 2. 2016, 23:31:17
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 |
#18 · Zasláno: 18. 2. 2016, 09:31:37
Č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... |
||
Časová prodleva: 7 let
|
0