login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Nesting IFs lukt niet (Opgelost)

Offline koenvdl - 03/11/2009 20:50 (laatste wijziging 03/11/2009 20:51)
Avatar van koenvdlNieuw lid bij onderstaande code zou er een registratie in mijn database moeten gebeuren. Sinds dat ik de controle van het emailadres heb ingebouwd loopt er iets grandioos mis.

  1. <?php
  2. if ($submit)
  3. {
  4. if ($nickname&&$username&&$password&&$password2&&$email)
  5. {
  6. if($password == $password2)
  7. {
  8. if(strlen($username) > 25 || strlen($nickname) > 25)
  9. {
  10. if(strlen($password) > 25 || strlen($password) < 6)
  11. {
  12. if (strpos($email,"@") === true)
  13. {
  14. $var = explode("@",$email);
  15. if (count($var)==2)
  16. {
  17. if(strpos($var[1],".")=== true)
  18. {
  19. $connection = mysql_connect('localhost', 'root', '') or die ("Could not connect to the database server!");
  20. mysql_select_db("test", $connection) or die ("Could not connect to the database");
  21. $register = sprintf("INSERT INTO users (id,username,password,nickname,date,email,registerIP) VALUES('', '%s', '%s', '%s', '%s','%s','%s')",
  22. mysql_real_escape_string($registerIP));
  23.  
  24. mysql_query($register);
  25. die("Successfully registered please <a href='index.php'>Log in</a>!");
  26. }
  27. else
  28. echo "No valid emailaddress. . is missing<br/>";
  29. }
  30. else
  31. echo "No valid emailaddress. @ is missing.<br/>";
  32. }
  33. else
  34. echo "Password must be between 6 - 25 characters!";
  35. }
  36. else
  37. echo "Username and Nickname maximum is 25 characters";
  38. }
  39. else
  40. echo "Password does not match!";
  41. }
  42. else
  43. echo "Please fill in all fields!";
  44. }
  45. }
  46. ?>

6 antwoorden

Gesponsorde links
Offline vinTage - 03/11/2009 20:58 (laatste wijziging 03/11/2009 21:01)
Avatar van vinTage Nieuw lid je mist sowieso een ) na je email check, maar waarom zo checken, er zijn andere makkelijkere manieren om te checken op een valid email adres.

if (strpos($email,"@") === true))
Offline NTS64 - 03/11/2009 20:59
Avatar van NTS64 PHP gevorderde Je doet dit veel te omslachtig imo.
Waarom doe je niet iets in deze aard:

  1. <?php
  2. $errors = array();
  3. if(statement)
  4. {
  5. $errors[] = "Error 1 omschrijving ";
  6. }
  7. if(statement2)
  8. {
  9. $errors[] = "Error 2 omschrijving";
  10. }
  11. if(statement3)
  12. {
  13. $errors[] = "Error 3 omschrijving";
  14. }
  15. // Enzovoorts
  16. // Ten slotte kijk je dan of de array errors keys bevat of niet
  17. if(count($errors) > 0)
  18. {
  19. echo 'De registratie kan niet voltooid worden, volgende fouten traden op: <br :>';
  20. foreach($errors as $error)
  21. {
  22. echo $error.'<br />';
  23. }
  24. }
  25. else
  26. {
  27. // registreren
  28. }
  29. ?>


Offline Martijn - 03/11/2009 22:31
Avatar van Martijn Crew PHP of
  1. if(voorwaarde1){...;}
  2. elseif(voorwaarde2){...;}
  3. elseif(voorwaarde3){...;}
  4. elseif(etc etc etc ){...;}
  5. else{ echo"goed";}
Offline vinTage - 03/11/2009 23:07
Avatar van vinTage Nieuw lid @DeviourSoul, dan is die van Woedi nogal wat handiger, dan kan je alle errors in een keer (forloop) tonen ipv per error.
Offline Martijn - 04/11/2009 19:24
Avatar van Martijn Crew PHP als je het zo wilt doen kun je beter ipv de foreach dit doen:

  1. echo implode("<br />-",$array);
Offline vinTage - 04/11/2009 21:07
Avatar van vinTage Nieuw lid Maar dat beperkt je weer in je vrijheid om eea op te maken met css (tenzij je de opmaak ook in de errors gaat proppen (wat dan weer niet klopt als je met bv gekleurde rijen om en om wilt doen)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.228s