login  Naam:   Wachtwoord: 
Registreer je!
 Forum

probleem met loginscript (Opgelost)

Offline kaspar - 30/09/2009 16:36
Avatar van kasparNieuw lid
  1. <?php
  2. $db = mysql_connect("---", "---", "---") or die("Helaas, kan niet verbinden met de database");
  3. mysql_select_db("---", $db);
  4.  
  5.  
  6. $naam = $_POST['username'];
  7. function controle($naam, $wachtwoord) {
  8. $sql = "SELECT username, password FROM Klant WHERE username='$naam'";
  9. $result = mysql_query($sql);
  10. if (mysql_num_rows($result) > 0) {
  11. $password = mysql_result($result, 0, "password");
  12. $klantid = mysql_result($result, 0, "username");
  13. if ($wachtwoord != $password) {
  14. return false;
  15. } else {
  16. return $username;
  17. }
  18. } else {
  19. return false;
  20. }
  21. }
  22.  
  23. if (isset($_POST['verzonden'])) {
  24. $username = $_POST['username'];
  25. $wachtwoord = md5($_POST['wachtwoord']);
  26. $klantid = controle($naam, $wachtwoord);
  27. if ($klantid != false) {
  28. $_SESSION['username'] = $username;
  29. $_SESSION['wachtwoord'] = $wachtwoord;
  30. $_SESSION['klantid'] = $klantid;
  31. echo 'klantid is niet false!';
  32. }
  33. else {
  34. echo 'klantid is false';
  35. }
  36. }
  37. if (controle($_SESSION['username'], $_SESSION['wachwoord']) == false) {
  38. echo '<form method="post" action="' . $_SERVER["PHP_SELF"] . '"?';
  39. reset($_GET);
  40.  
  41. while ($getvar = each($_GET)) {
  42. $varnaam = $getvar['key'];
  43. $varinhoud = $getvar['value'];
  44. echo "$varnaam=$varinhoud&";
  45. }
  46. echo "\">\n";
  47. echo 'Naam: ';
  48. echo '<input type="text" name="username">';
  49. echo '<br>';
  50. echo 'Wachtwoord: ';
  51. echo '<input type="password" name="wachtwoord">';
  52. echo '<br>';
  53. echo '<input type="submit" value="verzenden" name="verzonden">';
  54. echo '</form>';
  55. echo '<p>Nog niet geregistreerd? <a href="aanmeldformulier.php">[registreer hier]</a><br>';
  56. }
  57. echo $_SESSION['username'];
  58.  
  59. ?>


dit werkt niet, velden in db kloppen en contact klopt ook, zeker weten.
toch geeft hij elke keer klantid=false 

wie kan mij helpen?

8 antwoorden

Gesponsorde links
Offline ArieMedia - 30/09/2009 16:47 (laatste wijziging 30/09/2009 16:49)
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
je SQL is fout
$sql = "SELECT username, password FROM Klant WHERE username='$naam'";

Moet zijn
  1. $sql = 'SELECT username, password FROM Klant WHERE username="'.$naam.'"';


Edit: Waarom een wachtwoord opslaan in een sessie,
dit is onveilig en nergens voor nodig.
Offline kaspar - 01/10/2009 16:09 (laatste wijziging 01/10/2009 16:36)
Avatar van kaspar Nieuw lid ok bedankt, maar het werkt nog steeds niet:

  1. <?php
  2. $db = mysql_connect("---", "---", "---") or die("Helaas, kan niet verbinden met de database");
  3. mysql_select_db("---", $db);
  4.  
  5.  
  6. $naam = $_POST['username'];
  7. function controle($naam, $wachtwoord) {
  8. $sql = 'SELECT username, password FROM Klant WHERE username="' . $naam . '"';
  9. $result = mysql_query($sql);
  10. if (mysql_num_rows($result) > 0) {
  11. $password = mysql_result($result, 0, "password");
  12. $klantid = mysql_result($result, 0, "username");
  13. if ($wachtwoord != $password) {
  14. return false;
  15. } else {
  16. return $username;
  17. }
  18. } else {
  19. return false;
  20. }
  21. }
  22.  
  23. if (isset($_POST['verzonden'])) {
  24. $username = $_POST['username'];
  25. $wachtwoord = md5($_POST['wachtwoord']);
  26. $klantid = controle($naam, $wachtwoord);
  27. if ($klantid != false) {
  28. $_SESSION['username'] = $username;
  29. $_SESSION['klantid'] = $klantid;
  30. echo 'klantid is niet false!';
  31. }
  32. else {
  33. echo 'klantid is false';
  34. }
  35. }
  36. if (controle($_SESSION['username'], $_SESSION['wachwoord']) == false) {
  37. echo '<form method="post" action="' . $_SERVER["PHP_SELF"] . '"?';
  38. reset($_GET);
  39.  
  40. while ($getvar = each($_GET)) {
  41. $varnaam = $getvar['key'];
  42. $varinhoud = $getvar['value'];
  43. echo "$varnaam=$varinhoud&";
  44. }
  45. echo "\">\n";
  46. echo 'Naam: ';
  47. echo '<input type="text" name="username">';
  48. echo '<br>';
  49. echo 'Wachtwoord: ';
  50. echo '<input type="password" name="wachtwoord">';
  51. echo '<br>';
  52. echo '<input type="submit" value="verzenden" name="verzonden">';
  53. echo '</form>';
  54. echo '<p>Nog niet geregistreerd? <a href="aanmeldformulier.php">[registreer hier]</a><br>';
  55. }
  56. echo $_SESSION['username'];
  57. ?>
  58.  
  59.  
  60. mysql_close($db);
  61. ?>












ik heb eens gekeken:
de md5 van iets wat je invoert bij het aanmeldformulier:

  1. <?php
  2. function GeneratePassword() {
  3. $password = '';
  4. $password .= substr("bcdfghjkmnpqrstvwxz",mt_rand(0,18),1);
  5. $password .= substr("aeuy",mt_rand(0,3),1);
  6. $password .= substr("bcdfghjkmnpqrstvwxz",mt_rand(0,18),1);
  7. $password .= substr("!#*&",mt_rand(0,4),1);
  8. $password .= substr("bcdfghjkmnpqrstvwxz",mt_rand(0,18),1);
  9. $password .= substr("aeuy",mt_rand(0,3),1);
  10. $password .= substr("bcdfghjkmnpqrstvwxz",mt_rand(0,18),1);
  11. $password .= substr("23456789",mt_rand(0,7),1);
  12. return($password);
  13. }
  14. function valid_name ($str) {
  15. return (ereg ('^[A-Za-z. -]+$', $str));
  16. }
  17. function valid_tussenvoegsel ($str) {
  18. return (ereg ('^[A-Za-z ]*$', $str));
  19. }
  20. function valid_voorletters ($str) {
  21. return (ereg ('^[A-Z.]+$', $str));
  22. }
  23. function valid_achternaam ($str) {
  24. return (ereg ('^[A-Za-z -]+$', $str));
  25. }
  26.  
  27.  
  28.  
  29. $naam = ucfirst($naam);
  30. $verzendbutton = $_POST["verzendbutton"];
  31. $voorletters = $_POST["voorletters"];
  32. $tussenvoegsel = $_POST["tussenvoegsel"];
  33. $achternaam = $_POST["achternaam"];
  34. $mailadres = $_POST["mailadres"];
  35. if (isset($_POST["url"])) {
  36. $url = $_POST["url"];
  37. }
  38.  
  39.  
  40. if ($verzendbutton != "verzenden" || !valid_voorletters($voorletters) || !valid_tussenvoegsel($tussenvoegsel) || !valid_achternaam($achternaam)) {
  41. echo "<form action=\"".$_SERVER["PHP_SELF"]."\" method=\"post\">";
  42. if (!$url) {
  43. $url = getenv("HTTP_REFERER");
  44. }
  45. echo '<input type="hidden" name="url" value=' . $url . '>';
  46. if ($verzendbutton && !valid_voorletters($voorletters)) {
  47. echo '<font color="#ff0000">Vul uw voorletters correct in!</font>';
  48. }
  49. ?>
  50. Voorletters: <input type="text" name="voorletters" value="<?php echo $voorletters ?>"><br>
  51.  
  52. <?php
  53. if ($verzendbutton && !valid_tussenvoegsel($tussenvoegsel)) {
  54. echo '<font color="#ff0000">Vul uw tussenvoegsel correct in!</font>';
  55. }
  56. ?>
  57. Tussenvoegsel: <input type="text" name="tussenvoegsel" value="<?php echo $tussenvoegsel ?>"><br>
  58.  
  59. <?php
  60. if ($verzendbutton && !valid_achternaam($achternaam)) {
  61. echo '<font color="#ff0000">Vul uw achternaam correct in!</font>';
  62. }
  63. ?>
  64. Achternaam: <input type="text" name="achternaam" value="<?php echo $achternaam ?>"><br>
  65. Email: <input type="text" name="mailadres" value="<?php echo $mailadres ?>"><br>
  66. <input type="submit" value="verzenden" name="verzendbutton">
  67. </form>
  68. <?php
  69. }
  70. else {
  71.  
  72. $db = mysql_connect("---", "---", "---") or die("Helaas, kan niet verbinden met de database");
  73. mysql_select_db("---", $db);
  74.  
  75. $password = GeneratePassword();
  76. $passwordmd5 = md5($password);
  77. $voorl = strtolower(ereg_replace("\.", "", $voorletters));
  78. $achtern = strtolower(ereg_replace(" ", "", $achternaam));
  79. $username = substr($voorl.$achtern, 0, 15);
  80.  
  81. $sql = "INSERT INTO Klant (voorletters, tussenvoegsel, achternaam, email_prive, username, password) VALUES ('$voorletters', '$tussenvoegsel', '$achternaam', '$mailadres', '$username', '$passwordmd5')";
  82. $result = mysql_query($sql);
  83. if ($result) {
  84. $boodschap = 'De gebruiker ' . $voorletters . ' ' . $tussenvoegsel . ' ' . $achternaam . ' heeft zich geregistreerd! Stuur een email naar ' . $mailadres . ' met zijn inloggegevens als u wilt dat hij kan inloggen!';
  85. $boodschap .= 'Zijn gebruikersnaam is: ' . $username . '.';
  86. $boodschap .= 'Zijn wachtwoord is: ' . $password . '.';
  87. $ok = mail('camil-226@hotmail.com', "nieuwe gebruiker op knome.nl/mail", $boodschap, "From: admin@knome.nl/mail");
  88. if (!$ok) {
  89. echo 'Uw aanvraag kon niet worden verstuurd. <a href="' . $url . '">Probeer het nog een keer</a> of stuur een email naar: <a href="mailto: camil-226@hotmail.com">camil-226@hotmail.com</a>';
  90. }
  91. else {
  92. echo 'Uw aanvraag is verstuurd naar de administratie! Hij wordt zo spoedig mogelijk behandelt.';
  93. }
  94. }
  95. else {
  96. echo 'U mag maar een account hebben!';
  97. }
  98.  
  99. }
  100. ?>


verandert van de md5 van wat je per email krijgt      
Offline ArieMedia - 01/10/2009 16:20
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Onder het mom van,
Het doet het niet
[kwakcode]

Je krijgt geen mogelijke oplossing van me totdat je een foutmelding kan geven en zeggen wat jij geprobeerd hebt om het probleem op te lossen...
Offline kaspar - 01/10/2009 16:35 (laatste wijziging 01/10/2009 16:40)
Avatar van kaspar Nieuw lid dat heb ik dus nu aangepast...


username (normaal wachtwoord)
wachtwoord per email in md5
wachtwoord in db in md5

bgritter (tat#naz3)
5564b73aea1b93b0660a32ee988d2144
398362a0ca2bf26a9749b36cb

cstaps (ruz*haj7)
a0725248b1499abd00507d08fc79a354
a0725248b1499abd00507d08f

jgritter (zyp&faz5)
13c4b09a423a0b35421ac98d378c817c
13c4b09a423a0b35421ac98d3

ttest (zypkym4)
f31423fb5988d1fc5e10831f5d1d0c2b
f31423fb5988d1fc5e10831f5




ligt dat eraan dat bepaalde tekens niet in md5 kunnen ofzo??





ik heb nu alles qua puntkommas en al het saaie werk gecontroleerd, in de sql van alles aangepast totdat het helemáál niet meer klopte, info gezocht over md5, enz, enz enz. 
Offline ArieMedia - 01/10/2009 16:44
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
kaspar schreef:
dat heb ik dus nu aangepast...


username (normaal wachtwoord)
wachtwoord per email in md5
wachtwoord in db in md5

bgritter (tat#naz3)
5564b73aea1b93b0660a32ee988d2144
398362a0ca2bf26a9749b36cb

cstaps (ruz*haj7)
a0725248b1499abd00507d08fc79a354
a0725248b1499abd00507d08f

jgritter (zyp&faz5)
13c4b09a423a0b35421ac98d378c817c
13c4b09a423a0b35421ac98d3

ttest (zypkym4)
f31423fb5988d1fc5e10831f5d1d0c2b
f31423fb5988d1fc5e10831f5




ligt dat eraan dat bepaalde tekens niet in md5 kunnen ofzo??





ik heb nu alles qua puntkommas en al het saaie werk gecontroleerd, in de sql van alles aangepast totdat het helemáál niet meer klopte, info gezocht over md5, enz, enz enz. 
Alle characters kunnen ge MD5't worden. Maar als ik denk dat je bij e-mail nog iets anders toevoegt in MD5 aangezien de eerste reeks gelijk is.
Offline kaspar - 01/10/2009 16:54
Avatar van kaspar Nieuw lid ja behalve bij de gebruiker bgritter dat is dan weer vreemd
Offline ArieMedia - 01/10/2009 16:58
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
kaspar schreef:
ja behalve bij de gebruiker bgritter dat is dan weer vreemd
Voer het volgende script eens uit:

  1. <?php
  2. $aGebruikers = array('bgritter' => 'tat#naz3', 'cstaps' => 'ruz*haj7');
  3. // zelf even andere gebruikers toevoegen naam => wachtwoord
  4. foreach($aGebruikers as $sNaam => $sPass) {
  5. $sPass = md5($sPass);
  6. mysql_query('UPDATE gebruikers SET wachtwoord = "'.$sPass.'" WHERE naam = "'.$sNaam.'"';
  7. }
  8.  
  9. ?>


gebruikers is de tabelnaam van je login, wachtwoord is het wachtwoord veld. Dit scriptje update je wachtwoorden. Probeer er daarna mee in te loggen..
Ga ik nu naar huis toe ;)
Offline kaspar - 01/10/2009 17:03 (laatste wijziging 03/10/2009 12:12)
Avatar van kaspar Nieuw lid bgritter (tat#naz3)
5564b73aea1b93b0660a32ee988d2144 =>
398362a0ca2bf26a9749b36cb0d87eb8
398362a0ca2bf26a9749b36cb

cstaps (ruz*haj7)
a0725248b1499abd00507d08fc79a354 =>
a0725248b1499abd00507d08fc79a354 (hetzelfde dus...)
a0725248b1499abd00507d08f

dan klopt idd wat jij zei.. er wordt nog een teken toegevoegd/veranderd/afgehaald als ze in de db worden gezet of als ze per mail worden verstuurd  

tot zover alvast bedankt, ik moet nu ook weg








mensen, bedankt voor je bijdrage, maar het probleem is al verholpen:

ik had de md5-string 25 tekens max gegeven in de database, maar een md5-hash-string heeft altijd 32 tekens  

Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2026 Sitemasters.be - Regels - Laadtijd: 0.232s