Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z walidacj± formularza php
Forum PHP.pl > Forum > Przedszkole
rzk24
Mam problem z walidacj± stworzonego przeze mnie formularza, proszę pomóżcie.

Mam dwa pliki jeden z formularzem:


<form action="validate.php" method="post" >
<fieldset>
Name:<input maxlength="50" name="name" id="name" size="32" value="" class="form-text required" type="text" /><br>

Surname:<input maxlength="50" name="surname" id="surname" size="32" value="" class="form-text required" type="text" /><br>

Adress:<input maxlength="75" name="address" id="address" size="32" value="" class="form-text required" type="text" /><br>

City:<input maxlength="50" name="city" id="city" size="32" value="" class="form-text required" type="text" /><br>

Pcode:<input size="8" name="pcode" id="pcode" value="" class="form-text required" type="text" /><br>

Email:<input maxlength="75" name="email" id="email" size="32" value="" class="form-text required" type="text" /><br>

Phone:<input maxlength="32" name="phone" id="phone" size="20" value="" class="form-text" type="text" /><br>


<input type="submit" value="Wy¶lij" name="submit" />

</fieldset>
</form>


Drugi, który ma sprawdzić formularz:



$name='Name:';
$surname='Surname:';
$city='City:';
$adress='Adress:';
$pcode='Pcode:';
$email='Email:';
$phone='Phone:';


if (empty($name))
{ $error = "Nie wypełniłe¶ pola! <br/>"; }
elseif (strlen($name) > 50 || strlen($name) < 3 || preg_match( '/^[a-zA-Z±ćęłń󶿼ˇĆĘŁŃӦݬ ]+$/n'))
{ $error ="Imie musi mieć więcej niż 2 znaki i mniej niż 50 <br/>";}
else {
print $name . '<br>'
;}

if (empty($surname))
{ $error = "Nie wypełniłe¶ pola! <br/>"; }
elseif (strlen($surname) >= 50 || strlen($surname) < 2 || preg_match( '/^[a-zA-Z±ćęłń󶿼ˇĆĘŁŃӦݬ ]+$/n'))
{ $error ="Nazwisko musi mieć więcej niż 2 znaki i mniej niż 50 <br/>";}
else {
print $surname . '<br>'
;}

if (empty($city))
{ $error = "Nie wypełniłe¶ pola! <br/>"; }
elseif (strlen($city) >= 50 || strlen($city) < 2 || preg_match( '/^[a-zA-Z±ćęłń󶿼ˇĆĘŁŃӦݬ ]+$/n'))
{ $error .="Miasto musi mieć więcej niż 2 znaki i mniej niż 50 <br/>";}
else {
print $city . '<br>'
;}

if (empty($adress))
{ $error = "Nie wypełniłe¶ pola! <br/>"; }
elseif (strlen($adress) >= 75 || strlen($adress) < 4 || preg_match('/^[0-9]$', '/^[a-zA-Z±ćęłń󶿼ˇĆĘŁŃӦݬ ]+$/n'))
{ $error .="Adres musi mieć więcej niż 2 znaki i mniej niż 50 i zawierać cyfry i litery<br/>";}
else {
print $adress . '<br>'
;}

if (empty($pcode))
{ $error = "Nie wypełniłe¶ pola! <br/>"; }
elseif (preg_match('/^[0-9]{2}-?[0-9]{3}$/n'))
{ $error .="Nie prawidłowy format kodu pocztowego<br/>";}
else {
print $pcode . '<br>'
;}


if (empty($email))
{ $error = "Nie wypełniłe¶ pola! <br/>"; }
elseif (strlen($email) >= 75 || strlen($email) <=6 || preg_match('/^[a-zA-Z0-9\.\-_]+\@[a-zA-Z0-9\.\-_]+\.[a-z]{2,4}$/n', '/^[a-zA-Z±ćęłń󶿼ˇĆĘŁŃӦݬ ]+$/n'))
{ $error .="Nie prawidłowy format email<br/>";}
else {
print $email . '<br>'
;}

if (empty($phone))
{ $error = "Nie wypełniłe¶ pola! <br/>"; }
elseif (preg_match('/^([\+]){0,1}([0-9]{2})\-?[-]?([0-9]{3})\-?[-]?([0-9]{3})[-]\-?([0-9]{3})$/n'))
{ $error .="Nie prawidłowy format telefonu!<br/>";}
else {
print $phone . '<br>'
;}


Niestety wyskakuj± mi błędy i nie wiem jak je naprawić, proszę pomóżcie.
Błędy:


Warning: preg_match() expects at least 2 parameters, 1 given in C:\xampp\htdocs\zadania\formularz\validate.php on line 15
Name:

Warning: preg_match() expects at least 2 parameters, 1 given in C:\xampp\htdocs\zadania\formularz\validate.php on line 23
Surname:

Warning: preg_match() expects at least 2 parameters, 1 given in C:\xampp\htdocs\zadania\formularz\validate.php on line 31
City:

Warning: preg_match(): No ending delimiter '/' found in C:\xampp\htdocs\zadania\formularz\validate.php on line 39
Adress:

Warning: preg_match() expects at least 2 parameters, 1 given in C:\xampp\htdocs\zadania\formularz\validate.php on line 47
Pcode:

Notice: Undefined variable: error in C:\xampp\htdocs\zadania\formularz\validate.php on line 57

Warning: preg_match() expects at least 2 parameters, 1 given in C:\xampp\htdocs\zadania\formularz\validate.php on line 64
Phone:
Turson
Używaj BBCode dla PHP. Komunikaty mowi± jasno co i jak... preg_match() wygl±da inaczej niż masz, zobacz - preg_match. Musisz wcze¶niej zainicjalizować $error zanim zaczniesz do niego dopisywac.
rzk24
A mógłby¶ mi dokładnie pokazać na jednym przykładzie co muszę zrobić, bo dopiero uczę się php i nie bardzo wiem, jak używać preg_match?
rad11
A klikac tez dopiero sie uczysz kolego? przeciez dostales odnosnik od Tursona wystarczy kliknac to zobaczysz drugim parametrem powinien byc string ktory jest matchowany.
nospor
Dostales linka do manuala, tam masz wyraĽnie pokazane jak masz uzywac. Dodatkowo komunikat wyraĽnie mowi, ze preg_match wymaga dwoch parametrow a ty podales tylko jeden. Wszystko to masz opisane w linku, co dostales w poprzednim poscie.
rzk24
rad11 :"Klikać" już na szczę¶cie umiem, a co do twojej uwagi, to tylko kulturalnie poprosiłem o wytłumaczenie konkretnie mojego błędu, żebym wiedział, jak poprawić pozostałe. Nie wiem sk±d twoja frustracja
Turson
Zajrzałe¶ chociaż? http://php.net/preg_match#example-4910
rzk24
zagl±dałem i poprawiłem. Dzięki wielkie za pomoc
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.