validare formular in nested if

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

marian36
PHPRomania Supporter
Mesaje: 14
Membru din: Mie Dec 03, 2014 12:56 pm

validare formular in nested if

Mesajde marian36 » Sâm Feb 14, 2015 10:21 am

Am si eu o problema destul de stufoasa. Vreau sa validez un form cu email dupa urmatoarele criterii si nu stiu cum sa fac
1) In cazul in care este gol userul ,adresa sau emailul
Sa dea un echo pt fiecare in parte daca este valid, daca nu sa dea alt echo invalid.
2) Daca este scrisa gresit adresa de email sa dea un echo daca este corecta sa bage alt echo.
3) Daca adresa de email este goala sa dea un echo , daca nu sa dea alt echo pt fals.
La fel si cu user, password separat pt fiecare daca este gol :2 echo unul pt true altu pt fals.
Sa se ia in calcul toate combinatiile pt email: user, parola bagate-email gol, user bagat-email gol, parola bagata-email gol ceva de genu.
4) Pt validare email sa se foloseasca filter_var

Mai jos este scriptul facut de mine dar nu imi da cum trebuie. Banuiesc ca, trebuie baga-te unele in altele un nested if sa iasa ceva caci eu nu am reusit.

<html>

<head></head>

<body>


<form action ="form_testare1.php" method = "POST">
User:<input type="text" name = "user" />
<br/>
password:<input type = "password" name = "password" />
<br/>
Email:<input type = "text" name = "email" />
<br/>
<input type = "submit" name = "submit" value ="submit"/>

</form>

<?php

$password = $_POST['password'];
$user = $_POST['user'];
$email = $_POST['email'];

if(isset($_POST['user']) && ($_POST['password']) && ($_POST['email']))
{
echo "userul , parola si emailul sunt setate<br/>";
}
else
{

echo "userul:$user parola:$password sau emailul:$email nu au fost setate<br/>";

}

if(strlen($password)>0 && strlen($user)>0 && strlen($email)>0){



echo "User: $user<br/>";
echo "Password: $password<br/>";
echo "Email: $email<br/>";

}
else
{
echo "userul:$user este gol<br/>";
echo parola:$password este goala<br/>";
echo emailul:$email este gol<br/>";
}


if(filter_var($email,FILTER_VALIDATE_EMAIL))
{

echo "emailul este valid";

}
else
{
echo "emailul nu este valid<br/>";
}



?>
</body>

</html>



Avatar utilizator
ispas
Senior Member
Mesaje: 655
Membru din: Mar Sep 14, 2010 1:35 pm
Localitate: Craiova
Contact:

Re: validare formular in nested if

Mesajde ispas » Sâm Feb 14, 2015 10:51 am

Poti face si asa:

Cod: Selectaţi tot

$eroare = array();
$nume  = $_POST['nume'];
$pass = $_POST['pass'];
$email   = $_POST['email'];

//incepe validarea datelor trimise
if($nume=="" || strlen($nume)<3)
{
$eroare[] = "Numele nu a fost completat";
}
if($pass=="" || strlen($pass)<3)
{
$eroare[] = "Parola nu a fost completata";
}
if($email=="" || strlen($email)<3)
{
$eroare[] = "Numele nu a fost completat";
}

if(!filter_var($email, FILTER_VALIDATE_EMAIL)
{
$eroare[] = "Email-ul nu a putut fi validat !";
}

//contorizam erorile, daca exista
if(count($eroare)>0)
{
//avem erori,deci le afisam;
foreach($eroare as $er)
{
echo $er."<br />";
//daca vrei sa te opresti la prima eroare, sub aceasta linie, pui " break; "
}
}else
{
//nu avem erori;
echo "datele au fost validate, nu exista nicio eroare";
}

marian36
PHPRomania Supporter
Mesaje: 14
Membru din: Mie Dec 03, 2014 12:56 pm

Re: validare formular in nested if

Mesajde marian36 » Sâm Feb 14, 2015 11:14 am

acum verific
Ultima oară modificat Sâm Feb 14, 2015 11:35 am de către marian36, modificat 1 dată în total.

marian36
PHPRomania Supporter
Mesaje: 14
Membru din: Mie Dec 03, 2014 12:56 pm

Re: validare formular in nested if

Mesajde marian36 » Sâm Feb 14, 2015 11:20 am

Man da eroare nu merge:Parse error: syntax error, unexpected '{' si daca sterg acolada de acolo da alta eroare. Te rog verifica-l si spune-mi daca merge si la tine. Bafta!

marian36
PHPRomania Supporter
Mesaje: 14
Membru din: Mie Dec 03, 2014 12:56 pm

Re: validare formular in nested if

Mesajde marian36 » Sâm Feb 14, 2015 11:21 am

poate veni cineva cu o solutie verificata care merge?

Avatar utilizator
ispas
Senior Member
Mesaje: 655
Membru din: Mar Sep 14, 2010 1:35 pm
Localitate: Craiova
Contact:

Re: validare formular in nested if

Mesajde ispas » Sâm Feb 14, 2015 11:44 am

Era vorba doar de o paranteza neinchisa, aici ti se posteaza sa-ti faci idee, ulterior sa dezvolti acea idee.Daca tu nu esti disponibil sa verifici un cod de 20 de linii, inseamna ca nu acesta este domeniul tau.
Ti-as sugera sa incepi usor cu tutoriale, deoarece daca nu ai trecut de capitolul "Logare in php cu username si parola" , inseamna ca esti la inceput, iar la urmatoarea problema vei posta din nou aici, pana comunitatea iti va face practic scriptul complet.

Cod: Selectaţi tot

<?php
$eroare = array();
$nume  = $_POST['nume'];
$pass = $_POST['pass'];
$email   = $_POST['email'];


if($nume=="" || strlen($nume)<3)
{
$eroare[] = "Numele nu a fost completat";
}
if($pass=="" || strlen($pass)<3)
{
$eroare[] = "Parola nu a fost completata";
}
if($email=="" || strlen($email)<3)
{
$eroare[] = "Numele nu a fost completat";
}

if(!filter_var($email, FILTER_VALIDATE_EMAIL))
{
$eroare[] = "Email-ul nu a putut fi validat !";
}

//contorizam erorile, daca exista
if(count($eroare)>0)
{
//avem erori,deci le afisam;
foreach($eroare as $er)
{
echo $er."<br />";
//daca vrei sa te opresti la prima eroare, sub aceasta linie, pui " break; "
}
}else
{
//nu avem erori;
echo "datele au fost validate, nu exista nicio eroare";
}
?>


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 91 vizitatori