home > tutoriale > php > validare-formular-cu-php.php

Verificare Formular cu PhP

Serie Tut : 2/3

19 Septembrie 2010 de Mihail Alin

Vom folosi fomularul din tutorialul Validarea unui Formular cu JavaScript.
Dupa cum am explicat in acel tutorial, nu este recomandata folosirea JavaScript-ului ca unica masura de validare.

tutoriale php
Autor :   Mihail Alin

Mai intai sa copiem codul formularului

        <html>
        <head>
        <!-- Tutorial distribuit de rotuts.com . Tutoriale web-design , programare si multe altele la rotuts.com -->
        <title>Form Validation cu PHP </title>
        <!-- adaugam pagina javascript pe pagina cu formularul -->
        <script type="text/javascript" src="validareform.js"></script>
        </head>
        <body>
        <!-- Adaugam tag-ului de Form eventul onsubmit , care va intoarce rezultatul validarii(in cazul nostru) : -->
        <!-- TRUE - trece sau FALSE - nu trece ( ca sa spunem asa )-->
        <form action="" enctype="multipart/form-data" name="form" onsubmit="return ValidareForm(this);">
        <label>Name <br />
       		 <input type="text" name="nume" />
        </label><br />
        <label>E-mail <br />
        	<input type="text" name="email" />
        </label><br />
        <label>Mesaj <br />
        	<textarea name="mesaj" cols="100"></textarea>
        <label><br /><br />
        	<input type="submit" name="submit" />
        </form>
        </body>
        </html>
        

Pregatim formularul

		
	   <html>
        <head>
        <!-- Tutorial distribuit de rotuts.com . Tutoriale web-design , programare si multe altele la rotuts.com -->
        <title>Form Validation cu PHP </title>
        <!-- adaugam pagina javascript pe pagina cu formularul -->
        <script type="text/javascript" src="validareform.js"></script>
        </head>
        <body>
        <!-- Adaugam tag-ului de Form eventul onsubmit , care va intoarce rezultatul validarii(in cazul nostru) : -->
        <!-- TRUE - trece sau FALSE - nu trece ( ca sa spunem asa )-->
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" name="form" onsubmit="return ValidareForm(this);" method="post">
        <label>Name <br />
       		 <input type="text" name="nume" value="<?php $_POST['nume'];?>" />
        </label><br />
        <label>E-mail <br />
        	<input type="text" name="email" value="<?php $_POST['email'];?>" />
        </label><br />
        <label>Mesaj <br />
        	<textarea name="mesaj" cols="100"><?php $_POST['mesaj'];?></textarea>
        <label><br /><br />
        	<input type="submit" name="submit" />
		<input name="submit_id" type="hidden" id="submit_id" value="1"/>
        </form>
        </body>
        </html>
		
		

Primul lucru ,cel mai important, este sa specificam unde va trimite formularul datele colectate catre scriptul de procesare.
Dupa cum vedeti, scriptul o sa fie pe aceeasi pagina cu formularul ( <?php echo $_SERVER['PHP_SELF']; ?> ).
Trebuie sa specificam metoda trimiterii datelor din formular catre pagina de procesare ( in cazul nostru , catre PHP ), POST sau Get.
Vom folosi metoda POST deoarece acest formular ar putea trimite multe date catre pagina de procesare ( in special prin textarea (un mesaj al vizitatorului) ), metoda GET trimite toate datele formulariului prin URL , navigatoarele mai vechi au o restrictie maxima de 255 caractere care pot fi introduse in URL , desi navigatoarele noi pot procesa mai multe caractere, nu putem fi siguri ca toti vizitatorii vor folosi navigatoare noi sau vechi.
In plus , vom trimite catre scriptul de procesare si o adresa e-mail , nu am dori ca aceasta adresa sa apara in URL , fiind salvata in historialul de navigare .

PhP-ul

Ok , deschideti o pagina .php si incepem :
<?php
//Script distribuit de www.rotuts.com
//verificam e-mailul folosind o expresie regulara .
function is_valid_email($string)
{
	return preg_match('/^[.\w-]+@([\w-]+\.)+[a-zA-Z]{2,6}$/', $string);
}
//daca submid_id este egal cu 1 atunci incepem verificarea
if($_POST['submit_id'] == 1)
{
	//verificam numele, daca este NULL ( campul este gol ) atunci ...
	if($_POST['nume'] == NULL)
	{
		//stocam in variabila $message mesajul .
		$message ="Trebuie sa va scrieti numele";
	}
	//verificam daca s-a introdus e-mail-ul, daca variabila $message este goala ( deci nu s-au gasit erori la verificarea numelui ) si functia de validare pentru e-mail este falsa , atunci ... 
	if($message == NULL && is_valid_email($_POST['email']) == false)
		{
			$message = "Introduceti o adresa de e-mail valida";
		}
	//verificam mesajul
	if($message == NULL && $_POST['mesaj'] == NULL )
	{
		$message = "Trebuie sa scrieti un mesaj";
	}
}
//daca variabila $message nu este goala , atunci aratam eroarea prin intermediul unui DIV , se poate folosi CSS pentru o mai buna prezentare a acestui DIV.
if($message != NULL ){
?>

	 <div><?=$message;?>&/div>
     <br/>
<?php } ?>
	

Deci asa ar arata codul complet :

<?php
//Script distribuit de www.rotuts.com
//verificam e-mailul folosind o expresie regulara .
function is_valid_email($string)
{
	return preg_match('/^[.\w-]+@([\w-]+\.)+[a-zA-Z]{2,6}$/', $string);
}
//daca submid_id este egal cu 1 atunci incepem verificarea
if($_POST['submit_id'] == 1)
{
	//verificam numele, daca este NULL ( campul este gol ) atunci ...
	if($_POST['nume'] == NULL)
	{
		//stocam in variabila $message mesajul .
		$message ="Trebuie sa va scrieti numele";
	}
	//verificam daca s-a introdus e-mail-ul, daca variabila $message este goala ( deci nu s-au gasit erori la verificarea numelui ) si functia de validare pentru e-mail este falsa , atunci ... 
	if($message == NULL && is_valid_email($_POST['email']) == false)
		{
			$message = "Introduceti o adresa de e-mail valida";
		}
	//verificam mesajul
	if($message == NULL && $_POST['mesaj'] == NULL )
	{
		$message = "Trebuie sa scrieti un mesaj";
	}
}
//daca variabila $message nu este goala , atunci aratam eroarea prin intermediul unui DIV , se poate folosi CSS pentru o mai buna prezentare a acestui DIV.
if($message != NULL ){
?>

	 <div><?=$message;?>&/div>
     <br/>
<?php } ?>
   <form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" name="form" onsubmit="return ValidareForm(this);" method="post">
        <label>Name <br />
       		 <input type="text" name="nume" value="<?php $_POST['nume'];?>" />
        </label><br />
        <label>E-mail <br />
        	<input type="text" name="email" value="<?php $_POST['email'];?>" />
       </label><br />
        <label>Mesaj <br />
        	<textarea name="mesaj" cols="100"><?php $_POST['mesaj'];?></textarea>
        </label><br /><br />
        	<input type="submit" name="submit" value="Go"/>
		<input name="submit_id" type="hidden" id="submit_id" value="1">
        </form>
	

Observati ca nu avem DOCTYPE , nu avem tag-urile de inceput de HTML, HEAD sau BODY.
O asemenea codare isi are foloasele , doarece acest formular poate fi folosit pe mai multe pagini. Pentru a introduce acest formular pe o pagina "normala" trebuie scrisa urmatoarea linie de cod , pe pagina unde doriti sa il introduceti.Trebuie sa fie pagina .PHP.

	<?php @include_once("locatia formularului");?>
	

Pe fiecare pagina pe care inserati formularul, nu uitati sa inserati de asemenea si scriptul javascript folosind :

    <script type="text/javascript" src="locatiaScriptuluiJs.js"></script>
    

Citeste in continuare ultima parte din aceasta serie , in sfarsit ceea ce am asteptat cu totii, Serie Tut : 3/3 Trimiterea datelor colectate la adresa de email sau intoarce-te la Serie Tut : 1/3 Validarea unui Formular cu JavaScript.



Da si tu un like
  


Daca ti-a fost folositor acest tutorial/articol, poti copia urmatorul cod pe pagina ta

Tutoriale din Categoria PHP

  Trimiterea datelor din formular la adresa de e-mail   -   Cum sa detectezi ip utilizator   -   Validarea unui formular   -

Tutoriale aleatorii

  Meniu Slide-Out cu Jquery, Html si CSS   -   Cum sa creezi litere capitale/majuscule cu CSS   -   Centrarea paginii cu CSS   -   Table in HTML   -   Validarea unui formular   -   Afisarea datei cu Javascript   -   Efecte de mergini in PhotoShop   -
Spune-le prietenilor tai despre acest tutorial/articol
Nume:
Email:
Email-ul prietenului tau:
Mesajul:

Comenturi

0 comenturi pana acum... (posteaza si tu)

Comentarii:

Nume:

Email:

Comentariu:


 

*Intrebare de verificare : Raspunde la intrebarea din imaginea de mai jos ...

 
HINT : Raspunsul este din 6 litere, incepe cu r si se termina cu s


 


Important:
E-mailul nu va fi vizibil si NU va fi folosit de catre rotuts.com .
Nu sunt permise linkuri catre alte pagini.
Va rugam , comentariile sa ramana strict relationate cu topicul.
Comentariile considerate ofensive sau care nu au nici o legatura cu topicul vor fi sterse(trolling).

Folosirea codului HTML nu este permisa.
Puteti folosi BBcode pentru a va formata textul.