login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Fout if/else

Offline Jeroen - 03/09/2004 21:41 (laatste wijziging 03/09/2004 21:46)
Avatar van JeroenOnbekend Heej,

Na een uur lopen te zoeken geef ik het op! Ik kan de oplossing niet vinden! Hij zegt dat er een else teveel is. En dat klopt! maar hoe moet ik hem anders plaatsen? Het zou fijn zijn als je de code wilt verbeteren met een citaat wat je verbeterd hebt.

Fout pagina:
http://www.real...melden.php

aanmelden.php
  1. <?php
  2. session_start(); //Sessies starten
  3.  
  4. include"config.php"; // Hier staan alle gegevens in
  5. include"functions.php"; // Alle functies, Datum enz
  6.  
  7. // Html voor de fout pagina
  8. echo '<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#F1F5F6\" class=\"menu\">
  9. <tr>
  10. <td bgcolor=\"7894AE\"><p class=\"submenu\">&raquo; Fout!</p>
  11. </td>
  12. </tr>
  13. <tr>
  14. <td class=\"content1\">';
  15.  
  16. // Paar controles of velden leeg zijn
  17. if(empty($_SESSION['session_id'])) {
  18.  
  19. if(isSet($_POST['submit'])) {
  20. if(empty($_POST['gebruikersnaam']))
  21. { // In gebruikersnaam
  22. echo '<li>U heeft geen gebruikersnaam ingevult!';
  23. } // Uit gebruikersnaam
  24. if(empty($_POST['mail']))
  25. { // In email
  26. echo '<li>U heeft uw email adres niet ingevult!';
  27. } // Uit email
  28. if(empty($_POST['wachtwoord']))
  29. { // In wachtwoord
  30. echo '<li>U heeft uw wachtwoord niet ingevult!';
  31. } // Uit wachtwoord
  32. if(empty($_POST['wachtwoord2']))
  33. { // In wachtwoord2
  34. echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!';
  35. } // Uit wachtwoord 2
  36. if($_POST['wachtwoord'] != $_POST['wachtwoord2']) {
  37. { // In wachtwoorden controleren
  38. echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn';
  39. } // Uit wachtwoorden controleren
  40. else {
  41.  
  42. // Gebruikersnaam controleren of hij al bestaat
  43. $select = "SELECT * FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'";
  44. $sql = mysql_query($select);
  45. $aant = mysql_num_rows($sql);
  46. if($aant == 1) {
  47. echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!';
  48. }
  49. }
  50. else {
  51. // In de database gooien
  52. $insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUE
  53. ('', '".$_POST['gebruikersnaam']."','".$_POST['mail']."','".$_POST['wachtwoord']."','".$_POST['msn']."','".$_POST['icq']."','".$_POST['aim']."','".$_POST['yahoo']."','".$_POST['website']."','".$_POST['beroep']."','".$_POST['hobbys']."','".$_POST['interesses']."','".$_POST['types']."','"_SERVER['REMOTE_ADDR']."','".$datum."')";
  54. $query = mysql_query($insert)or die(mysql_error());
  55.  
  56. // Afsluiting van de html pagina
  57. echo '</td>
  58. </tr>
  59. </table>';
  60.  
  61. }
  62. } // Afsluiting van in database gooien
  63. } // Afsluiting submit
  64. } // Afsluiting session_id
  65.  
  66.  
  67.  
  68. // Normale html pagina
  69. echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  70. "http://www.w3.org/TR/html4/loose.dtd">
  71. <html>
  72. <head>
  73. <link type="text/css" rel="stylesheet" href="style.css">
  74. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  75. <title>Aanmelden</title>
  76. </head>
  77.  
  78. <body>
  79. <form method="post" action="'.$_SERVER['PHP_SELF'].'">
  80. <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
  81. <tr>
  82. <td bgcolor="7894AE"><p class="submenu">&raquo; Aanmeld informatie </p>
  83. </td>
  84. </tr>
  85. <tr>
  86. <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  87. <tr class="content1">
  88. <td width="23%"><SPAN class=gen>Gebruikersnaam: *</SPAN></td>
  89. <td width="74%"><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="30"></td>
  90. </tr>
  91. <tr class="content2">
  92. <td><SPAN class=gen>Email adres: *</SPAN></td>
  93. <td><input name="mail" type="password" id="mail" size="30"></td>
  94. </tr>
  95. <tr class="content1">
  96. <td><SPAN class=gen>Wachtwoord: * </SPAN></td>
  97. <td><input name="wachtwoord" type="password" id="wachtwoord" size="30"></td>
  98. </tr>
  99. <tr class="content2">
  100. <td><SPAN class=gen>Bevestig wachtwoord: * </SPAN></td>
  101. <td><input name="wachtwoord2" type="password" id="wachtwoord2" size="30"></td>
  102. </tr>
  103. </table>
  104. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  105. <tr>
  106. <td class="submenu">&raquo; Profiel informatie </td>
  107. </tr>
  108. <tr>
  109. <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  110. <tr class="content1">
  111. <td width="23%"><SPAN class=gen>ICQ Nummer:</SPAN></td>
  112. <td width="74%"><input name="icq" type="text" id="icq" size="30"></td>
  113. </tr>
  114. <tr class="content2">
  115. <td><SPAN class=gen>AIM Naam:</SPAN></td>
  116. <td><input name="aim" type="text" id="aim" size="30"></td>
  117. </tr>
  118. <tr class="content1">
  119. <td><SPAN class=gen>MSN Messenger:</SPAN></td>
  120. <td><input name="msn" type="text" id="msn" size="30"></td>
  121. </tr>
  122. <tr class="content2">
  123. <td><SPAN class=gen>Yahoo Messenger:</SPAN></td>
  124. <td><input name="yahoo" type="text" id="yahoo" size="30"></td>
  125. </tr>
  126. <tr class="content1">
  127. <td><SPAN class=gen>Website:</SPAN></td>
  128. <td><input name="website" type="text" id="website" size="30"></td>
  129. </tr>
  130. <tr class="content2">
  131. <td><SPAN class=gen>Woonplaats:</SPAN></td>
  132. <td><input name="woonplaats" type="text" id="woonplaats" size="30"></td>
  133. </tr>
  134. <tr class="content1">
  135. <td><SPAN class=gen>Beroep:</SPAN></td>
  136. <td><input name="beroep" type="text" id="beroep" size="30"></td>
  137. </tr>
  138. <tr class="content2">
  139. <td><SPAN class=gen>Hobbys:</SPAN></td>
  140. <td><input name="hobbys" type="text" id="hobbys" size="30"></td>
  141. </tr>
  142. <tr class="content1">
  143. <td valign="top"><SPAN class=gen>Interesses:</SPAN></td>
  144. <td><textarea name="interesses" cols="40" rows="5"></textarea></td>
  145. </tr>
  146. </table> </td>
  147. </tr>
  148. <tr>
  149. <td class="grijs_streep">&nbsp; </td>
  150. </tr>
  151. <tr>
  152. <td align="center"><input type="submit" name="submit" value="Aanmelden!">
  153. <input type="reset" value="Leeg velden"></td>
  154. </tr>
  155. </table></td>
  156. </tr>
  157. </table>
  158. </form>
  159.  
  160. </body>
  161. </html> ';
  162.  
  163. ?>

14 antwoorden

Gesponsorde links
Offline CelestialCelebi - 03/09/2004 21:58
Avatar van CelestialCelebi PHP gevorderde Oke, normaal doe ik dit niet.. Maar wacht even op de edit.
Offline BigTeddy - 03/09/2004 22:05 (laatste wijziging 04/09/2004 00:30)
Avatar van BigTeddy Gouden medaille

PHP gevorderde
Hier pas dit even gewoon aan.
Vanaf het begint tot "// Normale html pagina" dan zou het moeten werken. Er stonden enkel {} verkeerd en de remote_addr was niet volledig. OOk heb je de fout tabel verplaatst naar binnen in, want zoals deze stond, kreeg je altijd een stukje te zien van de fout ookal was het niet fout. ;)

  1. '"_SERVER['REMOTE_ADDR']."' => '".$_SERVER['REMOTE_ADDR']."'


Je zou wel een aantal dingen anders kunnen schrijven maar daar heb ik nu niets aanveranderd ;)

  1. <?
  2. <?php
  3. session_start(); //Sessies starten
  4.  
  5. include"config.php"; // Hier staan alle gegevens in
  6. include"functions.php"; // Alle functies, Datum enz
  7.  
  8. // Paar controles of velden leeg zijn
  9. if(empty($_SESSION['session_id'])) {
  10. if(isSet($_POST['submit']))
  11. {
  12. // Html voor de fout pagina
  13. echo '<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#F1F5F6\" class=\"menu\">
  14. <tr>
  15. <td bgcolor=\"7894AE\"><p class=\"submenu\">&raquo; Fout!</p>
  16. </td>
  17. </tr>
  18. <tr>
  19. <td class=\"content1\">';
  20. if(empty($_POST['gebruikersnaam']))
  21. { // In gebruikersnaam
  22. echo '<li>U heeft geen gebruikersnaam ingevult!';
  23. } // Uit gebruikersnaam
  24. if(empty($_POST['mail']))
  25. { // In email
  26. echo '<li>U heeft uw email adres niet ingevult!';
  27. } // Uit email
  28. if(empty($_POST['wachtwoord']))
  29. { // In wachtwoord
  30. echo '<li>U heeft uw wachtwoord niet ingevult!';
  31. } // Uit wachtwoord
  32. if(empty($_POST['wachtwoord2']))
  33. { // In wachtwoord2
  34. echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!';
  35. } // Uit wachtwoord 2
  36. if($_POST['wachtwoord'] != $_POST['wachtwoord2'])
  37. { // In wachtwoorden controleren
  38. echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn';
  39. } // Uit wachtwoorden controleren
  40. else
  41. {
  42. // Gebruikersnaam controleren of hij al bestaat
  43. $select = "SELECT * FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'";
  44. $sql = mysql_query($select);
  45. $aant = mysql_num_rows($sql);
  46. if($aant == 1)
  47. {
  48. echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!';
  49. }
  50.  
  51. else
  52. {
  53. // In de database gooien
  54. $insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUE ('', '".$_POST['gebruikersnaam']."','".$_POST['mail']."','".$_POST['wachtwoord']."','".$_POST['msn']."','".$_POST['icq']."','".$_POST['aim']."','".$_POST['yahoo']."','".$_POST['website']."','".$_POST['beroep']."','".$_POST['hobbys']."','".$_POST['interesses']."','".$_POST['types']."','".$_SERVER['REMOTE_ADDR']."','".$datum."')";
  55. $query = mysql_query($insert)or die(mysql_error());
  56. }
  57. } // Afsluiting van in database gooien
  58. } // Afsluiting submit
  59. } // Afsluiting session_id
  60.  
  61. // Afsluiting van de html pagina
  62. echo "</td>
  63. </tr>
  64. </table>";
  65. ?>
Offline DRUNK - 03/09/2004 22:08 (laatste wijziging 03/09/2004 22:09)
Avatar van DRUNK PHP gevorderde dit is ook nog niet helemaal goed, en waarschijnlijk al helemaal niet meer wat je bedoeling was maar dit is wat ik er in korte tijd van gemaakt heb....

succes verder!

  1. <?php session_start();
  2.  
  3.  
  4. include("config.php");
  5. include("functions.php");
  6.  
  7.  
  8. if(empty($_SESSION['session_id'])) {
  9. if(!isSet($_POST['submit'])) {
  10.  
  11. ?>
  12. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  13. "http://www.w3.org/TR/html4/loose.dtd">
  14. <html>
  15. <head>
  16. <link type="text/css" rel="stylesheet" href="style.css">
  17. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  18. <title>Aanmelden</title>
  19. </head>
  20.  
  21. <body>
  22. <form method="post" action="'.$_SERVER['PHP_SELF'].'">
  23. <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
  24. <tr>
  25. <td bgcolor="7894AE"><p class="submenu">&raquo; Aanmeld informatie </p>
  26. </td>
  27. </tr>
  28. <tr>
  29. <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  30. <tr class="content1">
  31. <td width="23%"><SPAN class=gen>Gebruikersnaam: *</SPAN></td>
  32. <td width="74%"><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="30"></td>
  33. </tr>
  34. <tr class="content2">
  35. <td><SPAN class=gen>Email adres: *</SPAN></td>
  36. <td><input name="mail" type="password" id="mail" size="30"></td>
  37. </tr>
  38. <tr class="content1">
  39. <td><SPAN class=gen>Wachtwoord: * </SPAN></td>
  40. <td><input name="wachtwoord" type="password" id="wachtwoord" size="30"></td>
  41. </tr>
  42. <tr class="content2">
  43. <td><SPAN class=gen>Bevestig wachtwoord: * </SPAN></td>
  44. <td><input name="wachtwoord2" type="password" id="wachtwoord2" size="30"></td>
  45. </tr>
  46. </table>
  47. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  48. <tr>
  49. <td class="submenu">&raquo; Profiel informatie </td>
  50. </tr>
  51. <tr>
  52. <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  53. <tr class="content1">
  54. <td width="23%"><SPAN class=gen>ICQ Nummer:</SPAN></td>
  55. <td width="74%"><input name="icq" type="text" id="icq" size="30"></td>
  56. </tr>
  57. <tr class="content2">
  58. <td><SPAN class=gen>AIM Naam:</SPAN></td>
  59. <td><input name="aim" type="text" id="aim" size="30"></td>
  60. </tr>
  61. <tr class="content1">
  62. <td><SPAN class=gen>MSN Messenger:</SPAN></td>
  63. <td><input name="msn" type="text" id="msn" size="30"></td>
  64. </tr>
  65. <tr class="content2">
  66. <td><SPAN class=gen>Yahoo Messenger:</SPAN></td>
  67. <td><input name="yahoo" type="text" id="yahoo" size="30"></td>
  68. </tr>
  69. <tr class="content1">
  70. <td><SPAN class=gen>Website:</SPAN></td>
  71. <td><input name="website" type="text" id="website" size="30"></td>
  72. </tr>
  73. <tr class="content2">
  74. <td><SPAN class=gen>Woonplaats:</SPAN></td>
  75. <td><input name="woonplaats" type="text" id="woonplaats" size="30"></td>
  76. </tr>
  77. <tr class="content1">
  78. <td><SPAN class=gen>Beroep:</SPAN></td>
  79. <td><input name="beroep" type="text" id="beroep" size="30"></td>
  80. </tr>
  81. <tr class="content2">
  82. <td><SPAN class=gen>Hobbys:</SPAN></td>
  83. <td><input name="hobbys" type="text" id="hobbys" size="30"></td>
  84. </tr>
  85. <tr class="content1">
  86. <td valign="top"><SPAN class=gen>Interesses:</SPAN></td>
  87. <td><textarea name="interesses" cols="40" rows="5"></textarea></td>
  88. </tr>
  89. </table> </td>
  90. </tr>
  91. <tr>
  92. <td class="grijs_streep">&nbsp; </td>
  93. </tr>
  94. <tr>
  95. <td align="center"><input type="submit" name="submit" value="Aanmelden!">
  96. <input type="reset" value="Leeg velden"></td>
  97. </tr>
  98. </table></td>
  99. </tr>
  100. </table>
  101. </form>
  102.  
  103. </body>
  104. </html>
  105.  
  106. <?php
  107. } else {
  108. if(empty($_POST['gebruikersnaam'])) {
  109. echo '<li>U heeft geen gebruikersnaam ingevult!';
  110. }
  111. if(empty($_POST['mail'])) {
  112. echo '<li>U heeft uw email adres niet ingevult!';
  113. }
  114. if(empty($_POST['wachtwoord'])) {
  115. echo '<li>U heeft uw wachtwoord niet ingevult!';
  116. }
  117. if(empty($_POST['wachtwoord2'])) {
  118. echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!';
  119. }
  120. if($_POST['wachtwoord'] != $_POST['wachtwoord2']) {
  121. echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn';
  122. }
  123. // Gebruikersnaam controleren of hij al bestaat
  124. $select = mysql_query("SELECT * FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'");
  125. if(mysql_num_rows($select)) {
  126. echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!';
  127. }
  128. // In de database gooien
  129. $insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUES ('', '".$_POST['gebruikersnaam']."','".$_POST['mail']."','".$_POST['wachtwoord']."','".$_POST['msn']."','".$_POST['icq']."','".$_POST['aim']."','".$_POST['yahoo']."','".$_POST['website']."','".$_POST['beroep']."','".$_POST['hobbys']."','".$_POST['interesses']."','".$_POST['types']."','"$_SERVER['REMOTE_ADDR']."','".$datum."')";
  130. if (!mysql_query($insert)) {
  131. die('inset query falied: ' . mysql_error());
  132. }
  133. echo 'gegevens succesvol!';
  134. }
  135. }
  136. else {
  137. echo '............';
  138. }
  139.  
  140. ?>
Offline CelestialCelebi - 03/09/2004 22:14 (laatste wijziging 03/09/2004 22:16)
Avatar van CelestialCelebi PHP gevorderde
  1. <?php
  2. session_start(); //Sessies starten
  3.  
  4. include"config.php"; // Hier staan alle gegevens in
  5. include"functions.php"; // Alle functies, Datum enz
  6. /* WAAROM GEBRUIK JE HIERONDER ECHO VAN PHP? WAAROM NIET GEWOON BUITEN PHP SPRINGEN? */
  7. ?>
  8. <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
  9. <tr>
  10. <td bgcolor="7894AE"><p class="submenu">&raquo; Fout!</p>
  11. </td>
  12. </tr>
  13. <tr>
  14. <td class="content1">
  15. <?php
  16. /* HEY, OOK GEEN GEESCAPE MEER.. EN DAT WAS TOCH AL NIET NODIG, OMDAT JE ENKELE QUOTES GEBRUIKTE BIJ ECHO */
  17. // Paar controles of velden leeg zijn
  18. if(empty($_SESSION['session_id']))
  19. {
  20. if($_SERVER['REQUEST_METHOD'] == 'POST') /* JA, DEZE GEBRUIKEN JA, ZO WEET JE _ZEKER_ DAT ER EEN POST IS EN DAT DIE OOK ECHT EEN FORMULIER BEVATTE */
  21. if($_POST['gebruikersnaam'] == '') /* JA, NIET MET EMPTY(), MAAR GEWOON == '' GEBRUIKEN, OMDAT '0' en 'false' OOK EMPTY() ZIJN */
  22. { // In gebruikersnaam
  23. echo '<li>U heeft geen gebruikersnaam ingevuld!'; /* HEHE, GEINIG: INGEVULD MOET MET EEN D :-) */
  24. } // Uit gebruikersnaam
  25. if(empty($_POST['mail'])) /* HIER OOK == '' GEBRUIKEN */
  26. { // In email
  27. echo '<li>U heeft uw email adres niet ingevult!';
  28. } // Uit email
  29. if(empty($_POST['wachtwoord'])) /* HIER OOK == '' GEBRUIKEN */
  30. { // In wachtwoord
  31. echo '<li>U heeft uw wachtwoord niet ingevult!';
  32. } // Uit wachtwoord
  33. if(empty($_POST['wachtwoord2']))
  34. { // In wachtwoord2
  35. echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!';
  36. } // Uit wachtwoord 2
  37. if($_POST['wachtwoord'] != $_POST['wachtwoord2'])
  38. { /* WAT DOET DIE ACCOLADE HIER?????? */
  39. { // In wachtwoorden controleren
  40. echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn';
  41. } // Uit wachtwoorden controleren
  42. else
  43. {
  44.  
  45. /* HIER LIEP HET AL FOUT AF :-) ZIE JE DE FOUT NU? */
  46.  
  47. // Gebruikersnaam controleren of hij al bestaat
  48. $select = "SELECT * FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'";
  49. $sql = mysql_query($select);
  50. $aant = mysql_num_rows($sql);
  51. if($aant == 1) {
  52. echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!';
  53. }
  54. }
  55. else {
  56. // In de database gooien
  57. $insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUE
  58. ('', '".$_POST['gebruikersnaam']."','".$_POST['mail']."','".$_POST['wachtwoord']."','".$_POST['msn']."','".$_POST['icq']."','".$_POST['aim']."','".$_POST['yahoo']."','".$_POST['website']."','".$_POST['beroep']."','".$_POST['hobbys']."','".$_POST['interesses']."','".$_POST['types']."','"_SERVER['REMOTE_ADDR']."','".$datum."')";
  59. $query = mysql_query($insert)or die(mysql_error());
  60.  
  61. // Afsluiting van de html pagina
  62. echo '</td>
  63. </tr>
  64. </table>';
  65.  
  66. }
  67. } // Afsluiting van in database gooien
  68. } // Afsluiting submit
  69. } // Afsluiting session_id
  70.  
  71.  
  72.  
  73. // Normale html pagina
  74. echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  75. "http://www.w3.org/TR/html4/loose.dtd">
  76. <html>
  77. <head>
  78. <link type="text/css" rel="stylesheet" href="style.css">
  79. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  80. <title>Aanmelden</title>
  81. </head>
  82.  
  83. <body>
  84. <form method="post" action="'.$_SERVER['PHP_SELF'].'">
  85. <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
  86. <tr>
  87. <td bgcolor="7894AE"><p class="submenu">&raquo; Aanmeld informatie </p>
  88. </td>
  89. </tr>
  90. <tr>
  91. <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  92. <tr class="content1">
  93. <td width="23%"><SPAN class=gen>Gebruikersnaam: *</SPAN></td>
  94. <td width="74%"><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="30"></td>
  95. </tr>
  96. <tr class="content2">
  97. <td><SPAN class=gen>Email adres: *</SPAN></td>
  98. <td><input name="mail" type="password" id="mail" size="30"></td>
  99. </tr>
  100. <tr class="content1">
  101. <td><SPAN class=gen>Wachtwoord: * </SPAN></td>
  102. <td><input name="wachtwoord" type="password" id="wachtwoord" size="30"></td>
  103. </tr>
  104. <tr class="content2">
  105. <td><SPAN class=gen>Bevestig wachtwoord: * </SPAN></td>
  106. <td><input name="wachtwoord2" type="password" id="wachtwoord2" size="30"></td>
  107. </tr>
  108. </table>
  109. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  110. <tr>
  111. <td class="submenu">&raquo; Profiel informatie </td>
  112. </tr>
  113. <tr>
  114. <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  115. <tr class="content1">
  116. <td width="23%"><SPAN class=gen>ICQ Nummer:</SPAN></td>
  117. <td width="74%"><input name="icq" type="text" id="icq" size="30"></td>
  118. </tr>
  119. <tr class="content2">
  120. <td><SPAN class=gen>AIM Naam:</SPAN></td>
  121. <td><input name="aim" type="text" id="aim" size="30"></td>
  122. </tr>
  123. <tr class="content1">
  124. <td><SPAN class=gen>MSN Messenger:</SPAN></td>
  125. <td><input name="msn" type="text" id="msn" size="30"></td>
  126. </tr>
  127. <tr class="content2">
  128. <td><SPAN class=gen>Yahoo Messenger:</SPAN></td>
  129. <td><input name="yahoo" type="text" id="yahoo" size="30"></td>
  130. </tr>
  131. <tr class="content1">
  132. <td><SPAN class=gen>Website:</SPAN></td>
  133. <td><input name="website" type="text" id="website" size="30"></td>
  134. </tr>
  135. <tr class="content2">
  136. <td><SPAN class=gen>Woonplaats:</SPAN></td>
  137. <td><input name="woonplaats" type="text" id="woonplaats" size="30"></td>
  138. </tr>
  139. <tr class="content1">
  140. <td><SPAN class=gen>Beroep:</SPAN></td>
  141. <td><input name="beroep" type="text" id="beroep" size="30"></td>
  142. </tr>
  143. <tr class="content2">
  144. <td><SPAN class=gen>Hobbys:</SPAN></td>
  145. <td><input name="hobbys" type="text" id="hobbys" size="30"></td>
  146. </tr>
  147. <tr class="content1">
  148. <td valign="top"><SPAN class=gen>Interesses:</SPAN></td>
  149. <td><textarea name="interesses" cols="40" rows="5"></textarea></td>
  150. </tr>
  151. </table> </td>
  152. </tr>
  153. <tr>
  154. <td class="grijs_streep">&nbsp; </td>
  155. </tr>
  156. <tr>
  157. <td align="center"><input type="submit" name="submit" value="Aanmelden!">
  158. <input type="reset" value="Leeg velden"></td>
  159. </tr>
  160. </table></td>
  161. </tr>
  162. </table>
  163. </form>
  164.  
  165. </body>
  166. </html> ';
  167.  
  168. ?>


Oke, dit moet je gebruiken:
1. Uitlijning.
2. HTML buiten PHP zetten (vooral de HELE grote stukken (zoals daar bovenaan en onderaan)).
3. if($_SERVER['REQUEST_METHOD'] == 'POST') in plaats van if(isset($_POST['...'])). Waarom? Omdat, als men op enter drukt, de pagina wel wordt gepost, maar die button niet bestaat. Ook bij lege formulieren werkt het dan niet meer...
4. Uitlijning.
5. $... == '' ipv. empty($...) gebruiken. 0 en false zijn ook empty().
6. Geen onnodige variabelen gebruiken. Dus $aant kan weg, omdat je die maar 1 keer gebruikt in je script. Maak daar dus niet:
  1. <?php
  2. $aant = mysql_num_rows($sql);
  3. if($aant == 1)
  4. {
  5. ?>
, maar:
  1. <?php
  2. if(mysql_num_rows($sql) == 1)
  3. {
  4. ?>

Die variabele is maar één keer nodig, dus gebruik je hem niet, maar roep je direct de waarde aan.
7. Uitlijning.
8. addslashes() gebruiken bij querys op de database (alleen bij strings). Waarom? Omdat als je een ' intypt, je een foutmelding krijgt. SQL injection heet dat dus. Voorbeeldje? Komt ie:
  1. <?php
  2. $var = 'hallo';
  3. mysql_query("INSERT INTO leden (gebruikersnaam) VALUES ('" . $var . "')", $rDatabaseConnection);
  4. // wordt:
  5. mysql_query("INSERT INTO leden (gebruikersnaam) VALUES ('hallo')", $rDatabaseConnection);
  6. // dit is nu nog goed, maar als mensen zelf iets in kunnen typen, kunnen ze dus ook een ' intypen. En dan krijg je een fout, kijk maar:
  7. mysql_query("INSERT INTO leden (gebruikersnaam) VALUES ('hallo'hoi')", $rDatabaseConnection);
  8. // en met addslashes() niet:
  9. mysql_query("INSERT INTO leden (gebruikersnaam) VALUES ('" . addslashes($var) . "')", $rDatabaseConnection);
  10. // wordt:
  11. mysql_query("INSERT INTO leden (gebruikersnaam) VALUES ('hallo\'hoi')", $rDatabaseConnection);
  12. ?>

Zie je? Dat is efficiënt scripten.
9. Gebruik de connection identifier van MySQL bij je querys en overal waar het kan, want eens zul je hem toch nodig hebben.. Als je meerdere database verbindingen gaat draaien, zul je hem ALTIJD mee moeten geven, omdat PHP moet weten welke database je bedoelt... Dus doe dat nu ook vast en leer jezelf dat aan.
10. Uitlijnen, had ik dat al gezegd? ;)

EDIT:
11. En NATUURLIJK geen or die(mysql_error()) gaan gebruiken he.. Je wilt natuurlijk wel netjes de error in een tekstbestandje hebben staan, zodat je weet wat er fout ging.. Hackers vinden het trouwens ook fijn om te zien wat voor fouten jij maakt, zodat ze beter het systeem binnen kunnen komen.
Offline BigTeddy - 03/09/2004 22:34
Avatar van BigTeddy Gouden medaille

PHP gevorderde
@ DRUNK
Volgens mij klopt het wel hoor, er wordt toch gecontroleerd of er iets leeg is, indien niet wordt er gecontroleerd of de gebruikersnaam reeds bestaat en als dat zo is => bericht "gbnaam reeds gebruikt" indien niet lid toevoegen in databank.

Dit lijk me toch goed en lijkt me toch ook wat normaal de bedoel is 
Offline CelestialCelebi - 03/09/2004 22:37
Avatar van CelestialCelebi PHP gevorderde @BigTeddy: Nee. Er wordt niet gecontroleerd of er iets leeg is, want er wordt gecontroleerd of iets gelijk is aan 0, gelijk is aan false of gelijk is aan leeg. En dat is weer iets heel anders.
Offline BigTeddy - 03/09/2004 22:58
Avatar van BigTeddy Gouden medaille

PHP gevorderde
Dat weet ik, maar ik heb er dan ook bijgezet dat ik niets aan het script zelf heb aangepast, enkel ervoor gezorgd dat de fout niet langer wordt getoond.

Want zo zou je ook nog kunnen aanpassen
  1. <?
  2. $select = "SELECT * FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'";
  3. $sql = mysql_query($select);
  4. $aant = mysql_num_rows($sql);
  5. ?>


aan

  1. <?
  2. $select = "SELECT COUNT(`id`) AS `aantal` FROM `leden` WHERE `gebruikersnaam` = '".$_POST['gebruikersnaam']."'";
  3. $sql = mysql_query($select);
  4. $array = mysql_fetch_array($sql);
  5. $aant = $array['aantal'];
  6. ?>


Want je moet enkel maar tellen hoeveel er zijn hé.
Dus waarom alles gaan selecteren, maar dit is vindt ik wel gewoon de dingen die een scriptje ietje sneller laat gaan. Maar dit hoeft natuurlijk niet echt want wat maakt nu een 1000 of meer van een seconde nu uit? ;) 
Offline Scott - 03/09/2004 23:03
Avatar van Scott Gouden medaille

PHP ver gevorderde
Werkt dit ?

  1. <?php
  2. session_start(); //Sessies starten
  3.  
  4. include"config.php"; // Hier staan alle gegevens in
  5. include"functions.php"; // Alle functies, Datum enz
  6.  
  7. // Html voor de fout pagina
  8. echo '<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#F1F5F6\" class=\"menu\">
  9. <tr>
  10. <td bgcolor=\"7894AE\"><p class=\"submenu\">&raquo; Fout!</p>
  11. </td>
  12. </tr>
  13. <tr>
  14. <td class=\"content1\">';
  15.  
  16. // Paar controles of velden leeg zijn
  17. if(empty($_SESSION['session_id'])) {
  18.  
  19. if(isSet($_POST['submit'])) {
  20. if(empty($_POST['gebruikersnaam']))
  21. { // In gebruikersnaam
  22. echo '<li>U heeft geen gebruikersnaam ingevult!';
  23. } // Uit gebruikersnaam
  24. if(empty($_POST['mail']))
  25. { // In email
  26. echo '<li>U heeft uw email adres niet ingevult!';
  27. } // Uit email
  28. if(empty($_POST['wachtwoord']))
  29. { // In wachtwoord
  30. echo '<li>U heeft uw wachtwoord niet ingevult!';
  31. } // Uit wachtwoord
  32. if(empty($_POST['wachtwoord2']))
  33. { // In wachtwoord2
  34. echo '<li>U heeft uw wachtwoord ter bevestiging niet ingevult!';
  35. } // Uit wachtwoord 2
  36. if($_POST['wachtwoord'] != $_POST['wachtwoord2']) {
  37. { // In wachtwoorden controleren
  38. echo '<li>Uw ingevulde wachtwoorden komen niet overeen! Zorg ervoor dat de wachtwoorden exact hetzelfde zijn';
  39. }
  40. else {
  41.  
  42. // Gebruikersnaam controleren of hij al bestaat
  43. $select = "SELECT * FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'";
  44. $sql = mysql_query($select);
  45. $aant = mysql_num_rows($sql);
  46. if($aant == 1) {
  47. echo '<li>De door uw gekozen gebruikersnaam staat al in onze database! Probeer het opnieuw met een ander gebruikersnaam!';
  48. }
  49. }
  50. else {
  51. // In de database gooien
  52. $insert = "INSERT INTO leden (id, gebruikersnaam, mail, wachtwoord, msn, icq, aim, yahoo, website, woonplaats, beroep, hobbys, interesses, type, ip, datum) VALUE
  53. ('', '".$_POST['gebruikersnaam']."','".$_POST['mail']."','".$_POST['wachtwoord']."','".$_POST['msn']."','".$_POST['icq']."','".$_POST['aim']."','".$_POST['yahoo']."','".$_POST['website']."','".$_POST['beroep']."','".$_POST['hobbys']."','".$_POST['interesses']."','".$_POST['types']."','"_SERVER['REMOTE_ADDR']."','".$datum."')";
  54. $query = mysql_query($insert)or die(mysql_error());
  55.  
  56. // Afsluiting van de html pagina
  57. echo '</td>
  58. </tr>
  59. </table>';
  60.  
  61. }
  62. } // Afsluiting van in database gooien
  63. } // Afsluiting submit
  64. } // Afsluiting session_id
  65.  
  66.  
  67.  
  68. // Normale html pagina
  69. echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  70. "http://www.w3.org/TR/html4/loose.dtd">
  71. <html>
  72. <head>
  73. <link type="text/css" rel="stylesheet" href="style.css">
  74. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  75. <title>Aanmelden</title>
  76. </head>
  77.  
  78. <body>
  79. <form method="post" action="'.$_SERVER['PHP_SELF'].'">
  80. <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#F1F5F6" class="menu">
  81. <tr>
  82. <td bgcolor="7894AE"><p class="submenu">&raquo; Aanmeld informatie </p>
  83. </td>
  84. </tr>
  85. <tr>
  86. <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  87. <tr class="content1">
  88. <td width="23%"><SPAN class=gen>Gebruikersnaam: *</SPAN></td>
  89. <td width="74%"><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="30"></td>
  90. </tr>
  91. <tr class="content2">
  92. <td><SPAN class=gen>Email adres: *</SPAN></td>
  93. <td><input name="mail" type="password" id="mail" size="30"></td>
  94. </tr>
  95. <tr class="content1">
  96. <td><SPAN class=gen>Wachtwoord: * </SPAN></td>
  97. <td><input name="wachtwoord" type="password" id="wachtwoord" size="30"></td>
  98. </tr>
  99. <tr class="content2">
  100. <td><SPAN class=gen>Bevestig wachtwoord: * </SPAN></td>
  101. <td><input name="wachtwoord2" type="password" id="wachtwoord2" size="30"></td>
  102. </tr>
  103. </table>
  104. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  105. <tr>
  106. <td class="submenu">&raquo; Profiel informatie </td>
  107. </tr>
  108. <tr>
  109. <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  110. <tr class="content1">
  111. <td width="23%"><SPAN class=gen>ICQ Nummer:</SPAN></td>
  112. <td width="74%"><input name="icq" type="text" id="icq" size="30"></td>
  113. </tr>
  114. <tr class="content2">
  115. <td><SPAN class=gen>AIM Naam:</SPAN></td>
  116. <td><input name="aim" type="text" id="aim" size="30"></td>
  117. </tr>
  118. <tr class="content1">
  119. <td><SPAN class=gen>MSN Messenger:</SPAN></td>
  120. <td><input name="msn" type="text" id="msn" size="30"></td>
  121. </tr>
  122. <tr class="content2">
  123. <td><SPAN class=gen>Yahoo Messenger:</SPAN></td>
  124. <td><input name="yahoo" type="text" id="yahoo" size="30"></td>
  125. </tr>
  126. <tr class="content1">
  127. <td><SPAN class=gen>Website:</SPAN></td>
  128. <td><input name="website" type="text" id="website" size="30"></td>
  129. </tr>
  130. <tr class="content2">
  131. <td><SPAN class=gen>Woonplaats:</SPAN></td>
  132. <td><input name="woonplaats" type="text" id="woonplaats" size="30"></td>
  133. </tr>
  134. <tr class="content1">
  135. <td><SPAN class=gen>Beroep:</SPAN></td>
  136. <td><input name="beroep" type="text" id="beroep" size="30"></td>
  137. </tr>
  138. <tr class="content2">
  139. <td><SPAN class=gen>Hobbys:</SPAN></td>
  140. <td><input name="hobbys" type="text" id="hobbys" size="30"></td>
  141. </tr>
  142. <tr class="content1">
  143. <td valign="top"><SPAN class=gen>Interesses:</SPAN></td>
  144. <td><textarea name="interesses" cols="40" rows="5"></textarea></td>
  145. </tr>
  146. </table> </td>
  147. </tr>
  148. <tr>
  149. <td class="grijs_streep">&nbsp; </td>
  150. </tr>
  151. <tr>
  152. <td align="center"><input type="submit" name="submit" value="Aanmelden!">
  153. <input type="reset" value="Leeg velden"></td>
  154. </tr>
  155. </table></td>
  156. </tr>
  157. </table>
  158. </form>
  159.  
  160. </body>
  161. </html> ';
  162.  
  163. ?>
Offline CelestialCelebi - 04/09/2004 07:56
Avatar van CelestialCelebi PHP gevorderde BigTeddy:

Dat kan nòg sneller:
  1. <?
  2. $select = "SELECT COUNT(1) FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'";
  3. $sql = mysql_query($select, $rDatabaseConnection);
  4. if(mysql_result($sql, 0) == 0)
  5. {
  6. // er waren 0 rijen
  7. }
  8. else
  9. {
  10. // er waren er wel gevonden
  11. }
  12. ?>


En ja, ik lijk nu een miereneuker, maar je moet het altijd zo snel mogelijk doen, want die laadtijd maakt voor jou NU niks uit, maar als je wat meer gaat doen dat dit gaat dat dus echt WEL uitmaken hoor...
Offline DRUNK - 04/09/2004 11:31
Avatar van DRUNK PHP gevorderde
  1. <?php
  2.  
  3. if(mysql_result(mysql_query("SELECT COUNT(1) FROM leden WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'", $rDatabaseConnection ), 0) == 0) {
  4. //0 rijen
  5.  
  6. }
  7. else {
  8. // > 0 rijen
  9. }
  10. ?>
Offline CelestialCelebi - 04/09/2004 11:40
Avatar van CelestialCelebi PHP gevorderde Hehe *lol*

En wat doe je nu als die query mislukt? Er moet namelijk ook nog een if/else in om te kijken of die query wel / niet lukt:

Zo doe ik het trouwens meestal:
  1. <?php
  2. $sSqlGetCount = "SELECT COUNT(1) FROM leden WHERE gebruikersnaam = '" . addslashes($_POST['gebruikersnaam']) . "'";
  3. if(!$rSqlGetCount = @mysql_query($sSqlGetCount, $rDatabaseConnection))
  4. {
  5. // de query is mislukt
  6. // ga hier de fout loggen
  7. trigger_error('Query at line ' . (__LINE__ - 5) . ' of file ' . __FILE__ . ' failed. Parsed query string: ' . $sSqlGetCount . '. MySQL returned ' . mysql_error(), E_USER_WARNING);
  8. // en ja, trigger_error() ja, want je hebt natuurlijk set_error_handler() gebruikt.. :)
  9. }
  10. else
  11. {
  12. // hij is wel gelukt:
  13. if(mysql_result($rSqlGetCount, 0) == 0)
  14. {
  15. // er zijn 0 rijen, doe wat
  16. }
  17. else
  18. {
  19. // toch niet, doe iets anders
  20. }
  21. }
  22. ?>


:D I love PHP.
Offline Insane - 04/09/2004 11:49
Avatar van Insane Onbekend i LOVE it to!:D
Offline cowbeast - 04/09/2004 12:33
Avatar van cowbeast Onbekend Pff probeer wel eens wat structuur in je if/else spullen te brengen dat is gemakelijker op het te volgen!
Offline DRUNK - 04/09/2004 13:45
Avatar van DRUNK PHP gevorderde nou ja gewoon wat structuur in deze code zou ook geen overbodige luxe zijn...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.459s