Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Walidacja formularza
Forum PHP.pl > Forum > Przedszkole
-Cziksu-
Witam. Muszę przeprowadzić walidacje formularz rejestracji użytkowników. Przeczytałem 4 obszerne tutki na temat wyrażeń regularnych w PHP ale dalej nie wiem jak to złożyć:
- login: bez spacji, duże i małe litery, cyfry
- hasło: j.w
- imię: bez spacji, duże i małe litery
- nazwisko: j.w
- miejscowość: spacje możliwe, duże i małe litery
- ulica: j.w plus cyfry
- numer domu: tylko liczby dziesiętne
kefirek
Nr domu możesz tak sprawdzić
  1. <?php
  2. $numerdomu = 21;
  3.  
  4. if (preg_match("/^[0-9]{2}$/", $numerdomu))
  5.  
  6. {echo "poprawny nr"; } else {echo "niepoprwany";}
  7. ?>
!*!
http://www.google.pl/search?num=100&hl...rza&spell=1

I masz odpowiedz na swoje pytanie, musisz tylko dostosować zmienne do swoich potrzeb.
.radex
Cytat(kefirek @ 30.06.2008, 11:39:50 ) *
Nr domu możesz tak sprawdzić
  1. <?php
  2. $numerdomu = 21;
  3.  
  4. if (preg_match("/^[0-9]{2}$/", $numerdomu))
  5.  
  6. {echo "poprawny nr"; } else {echo "niepoprwany";}
  7. ?>



Po co? Można to jeszcze łatwiej zrobić:

  1. <?php
  2. $numerdomu = 21;
  3.  
  4. if(is_int($numerdomu))
  5. {
  6. echo "poprawny nr";
  7. }
  8. else
  9. {
  10. echo "niepoprwany";
  11. }
  12. ?>
Gość
No ale chodzi jeszcze o określenie żeby można było dać określoną liczba cyfr i żeby niemożna było wpisywać spacji.
kefirek
Login można tak
  1. <?php
  2. $login = kEfir;
  3.  
  4. if (preg_match("/[0-9a-zA]$/", $login))
  5.  
  6. {echo "poprawny login"; } else {echo "niepoprawny";}
  7. ?>


Jak wpiszesz spacje to ci wyświetli niepoprwany sprawdza czy ciąg składa sie z małych i dużych liter oraz cyfr

Długość to tak sprawdzasz
  1. <?php
  2. if (strlen($haslo)<6) {
  3. echo "Podane hasło jest za krótkie";
  4. }
  5. ?>
--Cziksu--
Dalej coś jest nie tak. Wciąż jak wpisuje login np. "Panama 600" to przechodzi walidacje. A login ze spacją to mi nie pasuje troszkę sad.gif
Shili
  1. <?php
  2. if (preg_match("/^[0-9a-zA-Z]$/", $login))
  3. ?>

A tak?
!*!
  1. <?php
  2. if (preg_match("/[a-zA-Z0-9_.]$/", $login))
  3. ?>
-Cziksu-
teraz nawet jak wpisuje normalny login to nie działa sad.gif
!*!
I Ty przeczytałeś jakiś kurs PHP? A zmianną login pobierasz?
-Cziksu-
No aż taki lol to nie jestem żeby nie pobierać loginu. Po prostu nie wdaję się w szczegóły bo nie wiem tylko jak wyrażenie ułożyć, więc szukam pomocy.
!*!
to podaj to co masz
Shili
Nie dodałam plusa.
Kod
^[0-9a-zA-Z]+$
To wyrażenie na pewno działa, sama sprawdziłam na wszelki wypadek.
-Cziksu-
Ok nie będe kopiował całego kodu żeby nie zaśmiecać. Więc tak, mam formularz rejestracji w pliki register.php , po wypełnieniu formularza zostaje przekierowany do obslurz.php i tam mam takie if-a sprawdzającego dajmy na to jedno pole "login":

  1. <?php
  2. if(!ereg("[a-zA-Z0-9]", $_REQUEST['login'])){
  3. Header("Location: register.php");
  4. exit();
  5. }
  6. ?>


Wyrażenie sprawdza czy w loginie występują duże i małe litery oraz cyfry. Ale jak na przykład chcę się zalogować z loginem "Stefan 666" to powinno przekierować mnie na formularz, a tak się niestety nie dzieje.
kefirek
Zobacz tak
  1. <?php
  2. if(!ereg("[a-zA-Z0-9]+$", $_REQUEST['login']))
  3. {
  4. Header("Location: register.php");
  5. exit();
  6. }
  7. ?>
-Cziksu-
Dalej przechodzą loginy ze spacją :/
Shili
@up
Próbowałeś wyrażenia regularnego, które Ci podesłałam w poprzednim poście?
Daj przykład loginów, które po tym wyrażeniu przechodzą ze spacją.
!*!
zabardzo nie wiem po co Ci tam

Kod
Header("Location: register.php");


w dodatku nie umieszaj tego w środku dokumetu tylko na początku, a formularz wysyłaj metodoą GET, POST a potem go sprawdzaj.
-Cziksu-
Próbowałem to wyrażenie ale dalej nic.
Przy loginach takich jak: "Thomas 666", "Panama 4", "rico 89" Powinno przekierować na "register.php"
A poprawne loginy to np. "Franek1200", "Mateo_998", "morfeusz"
Shili
Proszę oto kod:
Kod
<?php
if (!preg_match("/^[0-9a-zA-Z]+$/", $_POST['login']))
    echo 'Źle';
?>

<form action="" method="post">
<input type="text" name="login" />
<input type="submit" value="kwa" />
</form>

Wpisz sobie na zupełnie pustą stronę i sprawdź wyrażenie regularne. Loginy które podałeś nijak przez nie nie przechodzą.
-Cziksu-
Oo TAAK działa smile.gif Wielkie Dzięki Shili :*
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.