Bun venit pe SkullBox!

Bine ai venit, Vizitator. Trebuie să te autentifici sau să îţi creezi un cont.
Ai pierdut sau nu ai primit emailul care conţine codul de activare al contului?

Autentifică-te cu numele de utilizator, parola şi precizează durata sesiunii.
  Pagini: [1]
  Imprimă  
Multiple mesaje de eroare afisate toate odata  (Vizualizari 333)
detective
*

Deconectat Deconectat

Mesaje: 130

Multiple mesaje de eroare afisate toate odata, Sep 26, 2008, 21:28

Buna, am o intrebare :

Daca am urmatorul snippet care verifica continutul unui formular, si fiecare neregularitate afiseaza un echo, mai exact prima neregularitate care este gasita este executata si afisat mesajul aferent, exista cumva posibilitatea ca sa afisez toate erorile gasite odata, sa zicem ca nu completez 2 campuri, cand dau submit el o sa imi verifice si primul camp necompletat o sa imi afiseze mesajul ca campul x nu este completat, apoi daca il completez pe x dar pe y il las gol iarasi la fel imi da mesajul ca y e necompletat, exista cumva posibilitatea ca e sa verifice sa zicem dintr-o bucata toate campurile, si la sfarsit daca exista neregularitati sa imi afiseze "campurile X, Y, Z sunt necompletate ? Bineinteles odata cu mesajul de eroare daca exista sa intrerupa si codul cu exit;.

Cod:
// verificare input-uri

   if($_POST['TOS'] != 'DA')
   {
      echo "Trebuie sa fii de acord cu Regulile si Termenii de Utilizare !!";
      exit;
   }
   else if(trim($adresa) == '')
   {
      echo "Adresa de e-mail nu este introdusa !!";
 exit;
   }
   else if($_POST['vanzator'] == '')
   {
      echo "Nu ai completat numele vanzatorului !!";
 exit;
   }
   else if($_POST['nume'] == '')
   {
      echo "Nu ai completat numele produsului !!";
 exit;
   }
   else if($_POST['Categorie'] == '')
   {
      echo "Nu ai specificat o categorie pentru produs !!";
 exit;
   }
   else if($_POST['pret'] == '')
   {
      echo "Nu ai specificat un pret !!";
 exit;
   }
   else if($_POST['detalii'] == '')
   {
      echo "Nu ai specificat o descriere pentru produs !!";
 exit;
   }
   else if($_POST['telefon'] == '')
   {
      echo "Nu ai specificat un numar de telefon !!";
 exit;
   }
   else if($_POST['parola'] == '')
   {
      echo "Nu ai specificat o parola de autor !!";
 exit;
   }
   else if($_POST['security'] == '')
   {
      echo "Nu ai introdus codul de securitate !!";
 exit;
   }
   else if($_SESSION['security_code']!=$_POST['security'])
   {
      echo "Codul de securitate este incorect.";
      exit;
   }
   $validator = new EmailAddressValidator;
   if ($validator->check_email_address($adresa)) {
    // Email address is technically valid
   } else {
    // Email not valid
echo "Adresa de e-mail introdusa nu este o adresa valida de forma nume@domeniu.tld";
    exit;
   }
// sfarsit verificare input-uri
Memorat
Agkelos
*

Deconectat Deconectat

Mesaje: 5229

WWW
Multiple mesaje de eroare afisate toate odata, Sep 26, 2008, 21:34

Dupa fiecare secventa de validare in loc sa folosesti echo si exit mai bine salvezi totul intr-un array care apoi il afisezi daca e cazul. De exemplu:

Cod:
$erori = array();
if($_POST['TOS'] != 'DA'){
      array_push($erori,"Trebuie sa accepti TOS-ul");
}
if( count($erori) > 0 ){
  echo "Nu am putut finaliza comanda. Am gasit urmatoarele erori:
";
  foreach( $erori as $eroare ){
    echo "$eroare
";
  }
}else{
  // aici tu stii ce urmeaza ;-)
}
Memorat



Problemele se rezolva pe forum. Nu trimiteti PM ca nu va ajut.
Pentru urgente, skullbox at skullbox . info.
detective
*

Deconectat Deconectat

Mesaje: 130

Multiple mesaje de eroare afisate toate odata, Sep 28, 2008, 13:54

Nu merge, tot doar o eroare imi arata

Aici e codul :

Cod:
// verificare input-uri
$erori = array();


   if($_POST['TOS'] != 'DA')
   {
 array_push($erori,"Trebuie sa fii de acord cu Regulile si Termenii de Utilizare !!");
   }
   else if(trim($adresa) == '')
   {
 array_push($erori,"Adresa de e-mail nu este introdusa !!");
   }
   else if($_POST['vanzator'] == '')
   {
 array_push($erori,"Nu ai completat numele vanzatorului !!");
   }
   else if($_POST['nume'] == '')
   {
 array_push($erori,"Nu ai completat numele produsului !!");
   }
   else if($_POST['Categorie'] == '')
   {
 array_push($erori,"Nu ai specificat o categorie pentru produs !!");
   }
   else if($_POST['pret'] == '')
   {
 array_push($erori,"Nu ai specificat un pret !!");
   }
   else if($_POST['detalii'] == '')
   {
 array_push($erori,"Nu ai specificat o descriere pentru produs !!");
   }
   else if($_POST['telefon'] == '')
   {
 array_push($erori,"Nu ai specificat un numar de telefon !!");
   }
   else if($_POST['parola'] == '')
   {
 array_push($erori,"Nu ai specificat o parola de autor !!");
   }
   else if($_POST['security'] == '')
   {
 array_push($erori,"Nu ai introdus codul de securitate !!");
   }
   else if($_SESSION['security_code']!=$_POST['security'])
   {
 array_push($erori,"Codul de securitate este incorect.");
   }
   $validator = new EmailAddressValidator;
   if ($validator->check_email_address($adresa)) {
    // Email address is technically valid
   } else {
    // Email not valid
array_push($erori,"Adresa de e-mail introdusa nu este o adresa valida de forma nume@domeniu.tld");
   }
   
   if( count($erori) > 0 ){
  echo "Nu am putut finaliza comanda. Am gasit urmatoarele erori:
";
  foreach( $erori as $eroare ){
    echo "$eroare
";
exit;
  }
  }

// sfarsit verificare input-uri
iar mai jos umreaza codul de executat, de aceea am renuntat la
Cod:
else{
  // aici tu stii ce urmeaza ;-)
}
pt ca executa daca totul e ok ceea cu urmeaza sub nu ?
Memorat
astan
*

Deconectat Deconectat

Mesaje: 357

Multiple mesaje de eroare afisate toate odata, Sep 28, 2008, 14:04

Cod:
 if( count($erori) > 0 ){
  echo "Nu am putut finaliza comanda. Am gasit urmatoarele erori:
";
  foreach( $erori as $eroare ){
    echo "$eroare
";
    exit;
  }
  }
Ce cauta exit-ul in bucla ?

Poate vrei sa zici:
Cod:
 
  if( count($erori) > 0 ){
  echo "Nu am putut finaliza comanda. Am gasit urmatoarele erori:
";
  foreach( $erori as $eroare ){
    echo "$eroare
";
  }
  exit;
  }
Memorat
Agkelos
*

Deconectat Deconectat

Mesaje: 5229

WWW
Multiple mesaje de eroare afisate toate odata, Sep 28, 2008, 14:37

Sorry. Mi-a scapat.
Memorat



Problemele se rezolva pe forum. Nu trimiteti PM ca nu va ajut.
Pentru urgente, skullbox at skullbox . info.
detective
*

Deconectat Deconectat

Mesaje: 130

Multiple mesaje de eroare afisate toate odata, Sep 28, 2008, 19:25

Am omis eu cu vederea o paranteza, totusi nici asa nu merge, acum afiseaza doar cate 2 erori deodata

Cod:
// verificare input-uri
$erori = array();


   if($_POST['TOS'] != 'DA')
   {
 array_push($erori,"Trebuie sa fii de acord cu Regulile si Termenii de Utilizare !!");
   }
   else if(trim($adresa) == '')
   {
 array_push($erori,"Adresa de e-mail nu este introdusa !!");
   }
   else if($_POST['vanzator'] == '')
   {
 array_push($erori,"Nu ai completat numele vanzatorului !!");
   }
   else if($_POST['nume'] == '')
   {
 array_push($erori,"Nu ai completat numele produsului !!");
   }
   else if($_POST['Categorie'] == '')
   {
 array_push($erori,"Nu ai specificat o categorie pentru produs !!");
   }
   else if($_POST['pret'] == '')
   {
 array_push($erori,"Nu ai specificat un pret !!");
   }
   else if($_POST['detalii'] == '')
   {
 array_push($erori,"Nu ai specificat o descriere pentru produs !!");
   }
   else if($_POST['telefon'] == '')
   {
 array_push($erori,"Nu ai specificat un numar de telefon !!");
   }
   else if($_POST['parola'] == '')
   {
 array_push($erori,"Nu ai specificat o parola de autor !!");
   }
   else if($_POST['security'] == '')
   {
 array_push($erori,"Nu ai introdus codul de securitate !!");
   }
   else if($_SESSION['security_code']!=$_POST['security'])
   {
 array_push($erori,"Codul de securitate este incorect.");
   }
   $validator = new EmailAddressValidator;
   if ($validator->check_email_address($adresa)) {
    // Email address is technically valid
   } else {
    // Email not valid
array_push($erori,"Adresa de e-mail introdusa nu este o adresa valida de forma nume@domeniu.tld");
   }
   
   if( count($erori) > 0 ){
  echo "Nu am putut finaliza comanda. Am gasit urmatoarele erori:
";
  foreach( $erori as $eroare ){
    echo "$eroare
";
  }
  exit;
  }

// sfarsit verificare input-uri
Memorat
Agkelos
*

Deconectat Deconectat

Mesaje: 5229

WWW
Multiple mesaje de eroare afisate toate odata, Sep 28, 2008, 20:23

Pune cate un if pentru fiecare conditie. Daca pui "else if" al doilea if e luat in considerare doar daca prima conditie nu este adevarata.
Memorat



Problemele se rezolva pe forum. Nu trimiteti PM ca nu va ajut.
Pentru urgente, skullbox at skullbox . info.
detective
*

Deconectat Deconectat

Mesaje: 130

Multiple mesaje de eroare afisate toate odata, Sep 29, 2008, 08:51

Citat din mesajul lui: Agkelos
Pune cate un if pentru fiecare conditie. Daca pui "else if" al doilea if e luat in considerare doar daca prima conditie nu este adevarata.
Asta era problema, m-am gadit si eu la posibilitatea asta si am modificat primul "else if" in "if" dar uite ca trebuia asa la toate.

Ms mult.........again Big grin
Memorat
SkullAds
Ecspert
ReclAmator
* * * * *
Google AdSense

Gen: Bărbat
Mesaje: Multe

Reclama AdSense,
 

 
   


Pagini: [1]
  Imprimă  
 
Schimbă forumul:  

Ethical hacking and programming community
Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC
Traducerea în limba română © 2006-2007 www.smf.ro