login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Welke volgorde?

Offline Pakito - 09/02/2010 12:01 (laatste wijziging 09/02/2010 15:49)
Avatar van PakitoNieuw lid Hey,

ik ben bezig aan een login systeem, en ben bezig met de registreer pagina, ik heb een email validatie checker geript en zon email ding ook geript:$. maar volgens mij heb ik de volgorde etc. helemaal verkeert, zou iemand er misschien naar kunnen kijken ;$.

  1. <?php
  2. function checkmail($email){
  3. if (eregi ("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$email)){
  4. $host = explode('@', $email);
  5. if (checkdnsrr ($host[1].'.', 'MX')) return true;
  6. if (checkdnsrr ($host[1].'.', 'A')) return true;
  7. if (checkdnsrr ($host[1].'.', 'CNAME')) return true;
  8. }else{
  9. return false;
  10. }
  11. }
  12.  
  13.  
  14. if ($_SERVER['REQUEST_METHOD'] == "POST") {
  15. if (!empty($_POST['Naam']) && !empty($_POST['Wachtwoord']) && !empty($_POST['Wachtwoord2']) && !empty($_POST['Email'])) {
  16. unset($_SESSION['submitnum']);
  17. $res = mysql_query("SELECT ID FROM `Leden` WHERE Naam = '".$_POST['Naam']."'");
  18. if(mysql_num_rows($res) != 0){
  19. echo 'Deze naam bestaat al.';
  20. }else{
  21. if (checkmail($_POST['Email']) == false) {
  22. echo 'Het ingevulde email adres is niet geldig.';
  23. }
  24. }
  25. if(!strcmp($_POST['Wachtwoord'], $_POST['Wachtwoord2'])) {
  26. mysql_query("INSERT INTO `Leden` (`ID`, `Naam`, `Wachtwoord`, `Email`, `Level`) VALUES ('','".$_POST['Naam']."', '".md5($_POST['Wachtwoord'])."', '".$_POST['Email']."', '1')") or die (mysql_error());
  27. echo '<p><b>De registratie is gelukt!</b></p>';
  28. echo '<p>Je kan meteen inloggen, Maar hebt wel een mail ontvangen ter bevestiging.</p>';
  29. $naam_ontvanger = $_POST['Naam'];
  30. $wachtwoord= $_POST['Wachtwoord'];
  31. $email_ontvanger = $_POST['Email'];
  32. $naam_verzender= 'Aepje.nl';
  33. $email_verzender = 'Info@Aepje.nl';
  34. $onderwerp= 'Registratie voltooid!';
  35. $bericht = "
  36. Beste ".$naam_ontvanger.",
  37.  
  38. Je registratie op Aepje.nl is gelukt!
  39. Hier zijn je gegevens voor als je ze een keer vergeet:
  40.  
  41. Naam: ".$naam_ontvanger."
  42. Wachtwoord: ".$wachtwoord."
  43.  
  44. Veel plezier op Aepje.nl
  45.  
  46. mvg,
  47. Aepje.nl
  48. ";
  49. mail($email_ontvanger, $onderwerp, $bericht);
  50. }else {
  51. echo 'De wachtwoorden komen niet overeen.'
  52. }
  53.  
  54. else {
  55. echo 'Niet alle velden zijn correct ingevuld.';
  56. }
  57. }
  58. ?>
  59. <br />
  60.  
  61. <table>
  62. <form name="register" action="index.php?page=register" method="post">
  63. <tr>
  64. <td>Naam</td>
  65. <td><input type="text" name="Naam" size="35" maxlength="50"></td>
  66. </tr>
  67. <tr>
  68. <td>Email</td>
  69. <td><input type="text" name="Email" size="35" maxlength="50"></td>
  70. </tr>
  71. <tr>
  72. <td>Wachtwoord:</td>
  73. <td><input type="password" name="Wachtwoord" size=35 class=input><td>
  74. </tr>
  75. <tr>
  76. <td>Wachtwoord Opnieuw:</td>
  77. <td><input type="password" name="Wachtwoord2" size=35 class=input><td>
  78. </tr>
  79. <td>&nbsp;</td><br>
  80. <br> <td><input type="Submit" value="Register">&nbsp;<input type="Reset"
  81. value="Reset"></td>
  82. </tr>
  83. </form>
  84. </table>
  85. </div>
  86.  
  87. <?php
  88. }
  89. ?>


EDIT: getabt & enkele foutjes eruit gehaalt, helaas nog niet de fout waarom hij hier staat xD

Bvd,
Pakito

11 antwoorden

Gesponsorde links
Offline TotempaaltJ - 09/02/2010 13:44
Avatar van TotempaaltJ PHP interesse Ten eerste zou ik je script wat overzichtelijker maken, gebruik spaties op een goede manier, dus per if/else vier spaties meer.
Voorbeeldje:
  1. if (!empty($_POST['Naam']) && !empty($_POST['Wachtwoord']) && !empty($_POST['Wachtwoord2']) && !empty($_POST['Email'])) {
  2. unset($_SESSION['submitnum']);
  3. $res = mysql_query("SELECT ID FROM `Leden` WHERE Naam = '".$_POST['Naam']."'");
  4. if(mysql_num_rows($res) != 0){
  5. echo 'Deze naam bestaat al.';
  6. } elseif (checkmail($_POST['Email']) == false) {
  7. echo 'Het ingevulde email adres is niet geldig.';
  8. }
  9. }
Zoals je kan zien is het nu een stuk overzichtelijker.
Ook: elseif is gewoon een deel van de if...else structuur, die het leven een stuk makkelijker maakt 
Offline Pakito - 09/02/2010 13:47 (laatste wijziging 09/02/2010 15:18)
Avatar van Pakito Nieuw lid Ty, maar nu werken de controles volgens mij niet allemaal, enig idee waar de fout ligt ? en een oplossing xD
Offline larssy1 - 09/02/2010 15:48
Avatar van larssy1 MySQL beginner "volgens mij".. controles werken wel of niet.. lol..

Ik heb 2x over je code heengelezen maar kan zo snel niks opvallends zien..

En nog iets.. Waarom 100% rippen?? >.< Leer je niks van.. en tenslotte is het meer uitdaging om zoiets zelf te schrijven..
Offline Pakito - 09/02/2010 16:24
Avatar van Pakito Nieuw lid mwah, niet 100% alleen sommige dingen had ik gewoon niet echt zin in xD, maar volgens mij lukt het! 
Offline TotempaaltJ - 09/02/2010 18:23
Avatar van TotempaaltJ PHP interesse Ziet er al een stuk beter uit (overigens raad ik tabs af en 4 spaties aan; tabs zijn overal een andere lengte), maar dit:
  1. }else{
  2. if (checkmail($_POST['Email']) == false) {
  3. echo 'Het ingevulde email adres is niet geldig.';
  4. }
Kan je vervangen door:
  1. }elseif(checkmail($_POST['Email']) == false) {
  2. echo 'Het ingevulde email adres is niet geldig.';
  3. }
PHP.net: elseif
Offline Abbas - 10/02/2010 17:34
Avatar van Abbas Gouden medaille

Crew .NET
Dat maakt echt geen reet uit of je nu de if in een else zet of je elseif gebruikt...
Offline TotempaaltJ - 10/02/2010 18:08
Avatar van TotempaaltJ PHP interesse Nee maar het staat wel een gigantisch stuk mooier.
Offline Abbas - 10/02/2010 20:03
Avatar van Abbas Gouden medaille

Crew .NET
Code hoort in de eerste plaats logisch en veilig te zijn. Trukskes zoals met die elseif is bijzaak in mijn ogen.
Offline TotempaaltJ - 10/02/2010 20:34
Avatar van TotempaaltJ PHP interesse Hmm, ik vind dat als je code duidelijk uitschrijft, het ook meteen een stuk makkelijker wordt om het logisch te schrijven. Uiteraard staat veiligheid bovenaan.
Als je het duidelijk wilt uitschrijven, zul je moeten indenten, met
if(
else(
if()
)
)
kan het dus verschrikkelijk onoverzichtelijk worden, als je een hoop elseif's wilt 
Offline Abbas - 10/02/2010 22:36
Avatar van Abbas Gouden medaille

Crew .NET
Als het er dan echt zoveel zijn werk je met een switch/case. En anders heb je sowieso slechte code! 
Offline TotempaaltJ - 10/02/2010 22:48
Avatar van TotempaaltJ PHP interesse We dwalen heel erg van het topic af...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.237s