Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Formularz - wykrywanie pustych inputów, określenie znaków
StadiPL
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 11.05.2013

Ostrzeżenie: (0%)
-----


Witam
Mam pewien problem i nie potrafię znaleźć rozwiązania na internecie. Chciałem zacząć powoli i małymi kroczkami robić sobie system kont i logowania. Zrobiłem sobie prosty formularz w HTLM i zacząłem pisać do niego odpowiedni kod PHP. Mój kod potrafi już sprawdzić czy hasło oraz jego powtórzenie się zgadza (to samo z e-mailem), jednak zauważyłem przy testach że mogę równie dobrze zostawić pola puste i też będzie się to zgadzać (logiczne). Moje pytania są następujące:
Jak sprawdzać czy pole nie jest puste?
Jak ograniczyć użytkownika aby mógł wpisać tylko wybrane przezemnie znaki?
Jak sprawdzić czy email jest poprawny? tzn czy posiada @ i domene
Dołączam kody:
  1. Rejestruj się:
  2. <form action="register_function.php" method="post">
  3. nick: <input type="text" name="nickname" /><br />
  4. haslo: <input type="password" name="password" /><br />
  5. powtorz haslo: <input type="password" name="password_r" /><br />
  6. email: <input type="text" name="email" /><br />
  7. powtorz email: <input type="text" name="email_r" /><br />
  8. <input type="submit" value="Rejestruj" />
  9. </form>

  1. <?php
  2. if ($_POST['password'] === $_POST['password_r']) {
  3. if ($_POST['email'] === $_POST['email_r']) {
  4. echo "GIT";
  5. } else {echo "Podane adresy email nie sa identyczne"; }
  6. } else {echo "Podane hasla nie sa identyczne"; }
  7. ?><br />
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
session
post
Post #2





Grupa: Zarejestrowani
Postów: 112
Pomógł: 22
Dołączył: 11.04.2010
Skąd: Tarnów

Ostrzeżenie: (0%)
-----


Widze, że wszystko już zostało wyjaśnione, ale odnosząc się jeszcze do pierwszego postu:
  1. if ($_POST['password'] == $_POST['password_r']) {
  2. if ($_POST['email'] == $_POST['email_r']) {
  3. if(!empty($_POST['nickname'])){
  4. echo "GIT";
  5. } else {echo "Wypełnij wszystkie wymagane pola"; }
  6. } else {echo "Podane adresy email nie sa identyczne"; }
  7. } else {echo "Podane hasla nie sa identyczne"; }
  8. ?>

W celu zachowania spójności można by to też w taki sposób zapisać, chociaż poprawność tego kodu jest dyskusyjna (to tylko dla ścisłości). Stosowanie jak w powyższym przykładzie elseif nie jest też do końca dobre dla użytkownika, ponieważ jeśli nie wypełni pierwszego pola, źle przepisze hasła, użyje niedozwolonych znaków w haśle i w nicku, zapomni o domenie w adresie email, będzie musiał wypełniać formularz 6 razy za każdym razem przepisując dwa razy hasła, jak nie cały formularz to krew go zaleje i to przy założeniu, że nie pomyli się gdzieś w trakcie, więc prędzej się nie zarejestruje. Błędy należy wyświetlać wszystkie jednocześnie, więc konstrukcja: if {} if{} do tego należy dodać $error=false; i zmieniać jej wartość na true jeśli wystąpi bład, a na końcu:
  1. if(!$error){echo 'Jest git';}


Ten post edytował session 12.05.2013, 09:56:14
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 06:49