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
StadiPL
post
Post #2





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

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


Zauważyłem że to jednak nie ja mam złe myślenie tylko coś jest nie tak z moją funkcją preg_match. Wygląda ona następująco:
  1. <?php
  2. if(!preg_match('/^[a-zA-Z0-9]$/D', $_POST['nickname'])) {echo "nie ok";}
  3. else { echo "GIT"; }
  4. ?>

Gdy nickname to "a" wyświetla "GIT", gdy nickname to np. "stadi" wyświetla "nie ok". Nie rozumiem dlaczego.. część /^[a-zA-Z0-9]$/D wykonałem dokładnie tak jak na internecie. Powinna ona sprawić że znaki użyte w nickname muszą być z przedziału od a do z (duże lub małe) lub/oraz od 0 do 9. Dlaczego zatem coś się psuje i działa dobrze gdy nickname jest jednoznakowy (pasujący do klucza), a nie działa gdy nickname składa się z wielu znaków (także pasujących do podanego klucza)?
EDIT: to samo tyczy sie polskich znakow

Ten post edytował StadiPL 12.05.2013, 01:37:56
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: 5.10.2025 - 09:32