login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Errors bij elkaar

Offline Jeroen - 01/09/2004 12:13 (laatste wijziging 01/09/2004 12:13)
Avatar van JeroenOnbekend Heej,

Ik ben nu bezig met een aanmeldt pagina. Nu kan je http://www.realphotoshop.nl/jeroen/aanmelden.php zien dat hij maar 1 error per keer weergeeft. Dit is logsich want mijn code zit zo in elkaar dat hij maar 1 weergeeft.

Nu wil ik mijn code zo veranderen zodat hij alle fouten tegelijkertijd weergeeft! Hier volgt mij code:
  1. <?php
  2.  
  3. include"config.php";
  4. include"functions.php";
  5.  
  6. if(empty($_SESSION['session_id'])) {
  7.  
  8. if(isSet($_POST['submit'])) {
  9. // Paar controles
  10. if(empty($_POST['nickname']))
  11. {
  12. echo'<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
  13. <tr>
  14. <td bgcolor="7894AE"><p class="submenu">&raquo; Fout!</p>
  15. </td>
  16. </tr>
  17. <tr>
  18. <td class="content1">U heeft geen nickname ingevuld!</td>
  19. </tr>
  20. </table>';
  21. } elseif(empty($_POST['naam'])) {
  22. echo'<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
  23. <tr>
  24. <td bgcolor="7894AE"><p class="submenu">&raquo; Fout!</p>
  25. </td>
  26. </tr>
  27. <tr>
  28. <td class="content1">U heeft geen naam ingevuld!</td>
  29. </tr>
  30. </table>';
  31. } elseif(empty($_POST['wachtwoord'])) {
  32. echo'U heeft geen wachtwoord ingevuld!';
  33. } elseif(empty($_POST['wachtwoord2'])) {
  34. echo'U heeft het controle wachtwoord niet ingevuld!';
  35. } elseif($_POST['wachtwoord'] != $_POST['wachtwoord2']) {
  36. echo'De 2 wachtwoorden komen niet overeen!';
  37. } else {
  38. $select = "SELECT * FROM leden WHERE nickname = '".$_POST['nickname']."'";
  39. $sql = mysql_query($select);
  40. $aant = mysql_num_rows($sql);
  41. if($aant == 1) {
  42. Echo'De door u gekozen gebruikersnaam is al bezet!';
  43. } else {
  44.  
  45. $wachtwoord = md5($_POST['wachtwoord']);
  46. $insert = "INSERT INTO leden (id, naam, nickname, wachtwoord, ip, datum, mail, leeftijd, woonplaats) VALUES ('', '".$_POST['naam']."', '".$_POST['nickname']."', '".$wachtwoord."', '".$_SERVER['REMOTE_ADDR']."', '".$_POST['mail']."', '".$_POST['leeftijd']."', '".$_POST['woonplaats']."')";
  47. $query = mysql_query($insert)or die(mysql_error());
  48.  
  49. }
  50. }
  51. }
  52.  
  53. echo'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  54. "http://www.w3.org/TR/html4/loose.dtd">
  55. <html>
  56. <head>
  57. <link type="text/css" rel="stylesheet" href="style.css">
  58. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  59. <title>Untitled Document</title>
  60. </head>
  61.  
  62. <body>
  63. <form method="post" action="'.$_SERVER['PHP_SELF'].'">
  64. <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
  65. <tr>
  66. <td bgcolor="7894AE"><p class="submenu">&raquo; Aanmelden </p>
  67. </td>
  68. </tr>
  69. <tr>
  70. <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  71. <tr class="content1">
  72. <td width="60%">Naam:</td>
  73. <td width="40%"><input name="naam" type="text" size="30"></td>
  74. </tr>
  75. <tr class="content2">
  76. <td>Nickname:</td>
  77. <td><input name="nickname" type="text" id="nickname" size="30"></td>
  78. </tr>
  79. <tr class="content1">
  80. <td>Wachtwoord:</td>
  81. <td><input name="wachtwoord" type="password" id="wachtwoord" size="30"></td>
  82. </tr>
  83. <tr class="content2">
  84. <td>Wachtwoord #2: </td>
  85. <td><input name="wachtwoord2" type="password" id="wachtwoord2" size="30"></td>
  86. </tr>
  87. <tr class="content1">
  88. <td>E-mail adres:</td>
  89. <td><input name="mail" type="text" id="mail" size="30"></td>
  90. </tr>
  91. <tr class="content2">
  92. <td>Leeftijd:</td>
  93. <td><input name="leeftijd" type="text" id="leeftijd" size="30"></td>
  94. </tr>
  95. <tr class="content1">
  96. <td>Woonplaats:</td>
  97. <td><input name="woonplaats" type="text" id="woonplaats" size="30"></td>
  98. </tr>
  99. <tr class="grijs_streep">
  100. <td>&nbsp;</td>
  101. <td>&nbsp;</td>
  102. </tr>
  103. <tr class="content1">
  104. <td><input type="submit" name="submit" value="Aanmelden">
  105. <input type="reset" name="reset" value="Leeg velden"></td>
  106. <td align="right">&nbsp; </td>
  107. </tr>
  108. </table></td>
  109. </tr>
  110. </table>
  111. </form>
  112. </body>
  113. </html>
  114. ';
  115.  
  116. }
  117. else
  118. {
  119. echo'U bent al ingelogd!';
  120. }
  121. ?>

10 antwoorden

Gesponsorde links
Offline Thomas - 01/09/2004 12:49
Avatar van Thomas Moderator Moet je geen else(if) constructie gebruiken, maar alles achter elkaar controleren, en dan een error-array vullen. Als alles in orde is, is je error array leeg, anders kun je alle errors uit het array afdrukken.
Offline DRUNK - 01/09/2004 12:53 (laatste wijziging 01/09/2004 12:55)
Avatar van DRUNK PHP gevorderde met de '&&' en '||' operators kun je in je if / elseif statements nog mer voorwaarden opgeven:
  1. <?php
  2. if (empty($_POST['name']) && empty($_POST['nickname'])) {
  3. echo 'geen naam opgegeven!<br />';
  4. echo 'geen nickname opgegeven!<br />';
  5. }
  6. else if (....) {
  7. // .... enzenz
  8. }
  9. ?>

zo lijkt mij het eenvoudigst (op dit moment)

[edit]
Citaat:
Moet je geen else(if) constructie gebruiken, maar alles achter elkaar controleren, en dan een error-array vullen. Als alles in orde is, is je error array leeg, anders kun je alle errors uit het array afdrukken.

ja dat is nog beter...[/edit]
Offline Thomas - 01/09/2004 12:55
Avatar van Thomas Moderator Ja, en dan ff alle combinaties afgaan...

HOI 
Offline Tuinstoel - 01/09/2004 13:07
Avatar van Tuinstoel PHP expert Gebruik trouwens geen empty als je wilt kijken of iets wel of niet is ingevuld, daarvoor heb je dit:
  1. <?
  2. if($_POST['iets'] == '')
  3. {
  4. // blablabla
  5. }
  6. ?>


Met empty kijk je of het geen waarde mee heeft gekregen, dus als je 0 of FALSE invult als bijvoorbeeld wachtwoord dan geeft hij die error.
Offline Insane - 01/09/2004 14:05
Avatar van Insane Onbekend Tuinstoel,

moet je dan niet de waarde van FALSE invullen?;)
Offline Jeroen - 01/09/2004 14:13 (laatste wijziging 01/09/2004 14:14)
Avatar van Jeroen Onbekend @Drunk, Dat gaat niet lukken. Want als je 1 ding invult dan geeft hij dus geen error, vul je niks niks geeft hij alleen een error.

@FangorN, ik snap het een beetje. Zou je een met mijn code een voorbeeld kunnen maken? Hoe niet super uitgebreid! Gewoon zeggen waar ik de errors kan plaatsen enz.

@Tuinstoel, Empty is beter dan wat jij zegt. Ook veiliger. En hij werkt perfect met empty hoor!
Offline DRUNK - 01/09/2004 14:40
Avatar van DRUNK PHP gevorderde ja je hebt gelijk mijn oplossing is een beetje (erg) omslachtig, hm ik heb nu even geen tijd om een leuk voorbeeldje uit te werken misschien iemand anders anders vanavond even...
Offline Joel - 01/09/2004 15:59 (laatste wijziging 01/09/2004 15:59)
Avatar van Joel Eigenaar
Citaat:
Gebruik trouwens geen empty als je wilt kijken of iets wel of niet is ingevuld, daarvoor heb je dit:
<?
if($_POST['iets'] == '')
{
// blablabla
}
?>


Het beste om te controleren of een variabele geset is:

  1. <?php
  2. if (isset($_POST['iets']) == "")
  3. {
  4. // blablabla
  5. }
  6. ?>
Offline Jeroen - 01/09/2004 17:19
Avatar van Jeroen Onbekend Ik kom er niet mee uit! Ik heb wat zitten prutsen maar ik kom er echt niet uit! Het beste is dat FangorN een voorbeeldje kan maken! Zodat ik er wat van kan opsteken!

Als iemand anders het weet en je een voorbeeld kan maken dan zie ik dat heel erg graag.
Offline Thomas - 01/09/2004 19:55 (laatste wijziging 01/09/2004 19:58)
Avatar van Thomas Moderator
  1. <?php
  2. // ...
  3. // start formulier verwerking
  4. if(isset($_POST['submit'])) { // of wat dan ook
  5. // je error array
  6. $error = array();
  7. if(empty($_POST['veld1'])) {
  8. // foute boel, voeg een error toe aan het error-array
  9. $error[] = "veld1 is niet ingevuld";
  10. }
  11.  
  12. if(empty($_POST['veld2'])) {
  13. // mja ... :)
  14. $error[] = "veld2 is niet ingevuld";
  15. }
  16.  
  17. // et cetera, je kan natuurlijk ook andere dingen
  18. // controleren... correct opmaak van url's, e-mail adressen
  19. // nicknames of wat dan ook
  20.  
  21. // alles in orde - oftewel is je error array leeg?
  22. if(sizeof($error) > 0) {
  23. // Houston, we have a problem
  24. echo "Er is het een en ander fout:<br />";
  25. for($i=0; $i < sizeof($error); $i++) {
  26. echo $error[$i]."<br />";
  27. }
  28. } else {
  29. // all systems are go
  30. // (oftewel insert query of whatever je hier wilt doen)
  31. } // einde error check
  32. } // einde submit check
  33. ?>


Kunnen misschien nog foutjes in zitten - het principe lijkt me duidelijk.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.225s