login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Probleem met foreach

Offline roelh - 29/04/2009 16:47
Avatar van roelhPHP gevorderde Hallo allemaal,

Ik heb een klein probleempje en ik slaap denk ik, want ik zie het gewoon niet:S
$fouten is GEEN array terwijl ik het wel aangegeven heb boven.
Wat o wat doe ik verkeerd?

Bedankt voor jullie hulp alvast!

  1. <?php
  2. if(isset($_SESSION['id']))
  3. {
  4. echo 'Je bent al geregistreerd.';
  5. }else{
  6.  
  7. if(isset($_SERVER['REQUEST_METHOD']) and $_SERVER['REQUEST_METHOD'] == 'POST')
  8. {
  9. $fouten = array();
  10.  
  11. if(empty($_POST['gebruikersnaam']))
  12. {
  13. $fouten = 'Je hebt geen gebruikersnaam ingevuld';
  14. }
  15. if(empty($_POST['wachtwoord']))
  16. {
  17. $fouten = 'Je hebt geen wachtwoord ingevuld';
  18. }
  19. if(empty($_POST['voornaam']))
  20. {
  21. $fouten = 'Je hebt geen voornaam ingevuld';
  22. }
  23. if(is_array($fouten))
  24. {
  25. foreach($fouten as $fout){
  26. echo "Door de volgende redenen kun je niet verder:<br/>";
  27. echo $fout."<br/>";
  28. }
  29. }else{
  30. echo 'geen array';
  31. }
  32.  
  33. // mysql_query("INSERT into gebruikers (gebruikersnaam, wachtwoord, voornaam, tussenvoegsel, achternaam) VALUES
  34. // ('".$_POST['gebruikersnaam']."', '".mysql_real_escape_string($_POST['wachtwoord'])."', '".mysql_real_escape_string($_POST['voornaam'])."', '".mysql_real_escape_string($_POST['tussenvoegsel'])."', '".mysql_real_escape_string($_POST['achternaam'])."'");
  35. }else{
  36. ?>
  37. <form action ="" method="post">
  38. <table>
  39. <tr>
  40. <td>Gebruikersnaam:</td>
  41. <td><input type="text" name="gebruikersnaam"></td>
  42. </tr>
  43. <tr>
  44. <td>Wachtwoord:</td>
  45. <td><input type="password" name="password"></td>
  46. </tr>
  47. <tr>
  48. <td>Voornaam:</td>
  49. <td><input type="text" name="voornaam"></td>
  50. </tr>
  51. <tr>
  52. <td>Tussenvoegsel</td>
  53. <td><input type="text" name="tussenvoegsel"></td>
  54. </tr>
  55. <tr>
  56. <td>Achternaam</td>
  57. <td><input type="text" name="achternaam"></td>
  58. </tr>
  59. <tr>
  60. <td></td>
  61. <td><input type="reset" value="Reset">
  62. <input type="submit" name= "submit" value="Submit"></td>
  63. </tr>
  64. </table>
  65. </form>
  66. <?
  67. }
  68. }
  69. ?>

6 antwoorden

Gesponsorde links
Offline henver - 29/04/2009 16:49 (laatste wijziging 29/04/2009 16:49)
Avatar van henver HTML gevorderde Probeer eens elke

  1. $fouten = 'Foutmelding';

te vervangen door

  1. $fouten .= 'Foutmelding';
Offline Koen - 29/04/2009 16:50
Avatar van Koen PHP expert $fouten -> $fouten[]
Je vervangt je array door een string!
Offline ArieMedia - 29/04/2009 16:50
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Als er een fout is zeg je $fouten = 'melding';

Maar je bedoeld $fouten[] = 'melding';

Zo maak je een array ;)
Offline roelh - 29/04/2009 16:51
Avatar van roelh PHP gevorderde
sliphead schreef:
$fouten -> $fouten[]
Je vervangt je array door een string!


Thanks! Niet goed gezien, sorry!
bedankt allemaal 
Offline ArieMedia - 29/04/2009 16:51 (laatste wijziging 29/04/2009 16:56)
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
sliphead was me net weer voor 0.o

Trouwens dit stukje script van je klopt ook niet:

  1. if(is_array($fouten)) {
  2. foreach($fouten as $fout){
  3. echo "Door de volgende redenen kun je niet verder:<br/>";
  4. echo $fout."<br/>";
  5. }
  6. } else {
  7. echo 'geen array';
  8. }


$fouten is namelijk altijd een array (zet je toch bovenaan?)
Doe dan de controle:


  1. if(count($fouten) > 0) { /* echo fouten */}
  2. else { /* echo geen fouten */ }


En bij je foreach, mocht je meer fouten hebben dan staat er voor elke fout "Je kon niet inloggen door de volgende redenen".
Je moet die melding dus uit de foreach halen.
Offline NataschaV - 29/04/2009 20:24
Avatar van NataschaV PHP interesse Als het probleem is opgelost kan je misschien aanvinken zodat hij uit actieve forumberichten verdwijnt.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.242s