login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Fout met inloggen

Offline roelh - 30/08/2005 01:59
Avatar van roelhPHP gevorderde Als ik maar iets invoer, dan staat er altijd dak ik ben ingelogd, maar het is niet zo.
Wat doe ik fout?
Wie kan me helpen bitte? 

  1. <?
  2. require_once ("config.php");
  3.  
  4. if(isset($_SESSION['username']) && ($_SESSION['wachtwoord']))
  5. {
  6. echo "al ingelogd";
  7. }
  8.  
  9. if(isset($_POST['submit']))
  10. {
  11. if ($_POST['usern'] == "" && $_POST['pass'] == ""){
  12. echo "Je bent vergeten iets in te vullen.";
  13. }
  14. else{
  15.  
  16. $password = md5( $_POST['pass'] );
  17.  
  18. $query = mysql_query( "SELECT * FROM `users` where name = '".$_POST['usern']."' '".$password."'" ) or die ( mysql_error() );
  19. while ($show = mysql_fetch_assoc($query));
  20. if($_POST['usern'] == $show['name'] && $password == $show['pass'])
  21. {
  22.  
  23.  
  24. $_SESSION['userid'] = $show['id'];
  25. $_SESSION['username'] = $show['name'];
  26. $_SESSION['wachtwoord'] = $show['pass'];
  27.  
  28. }
  29. echo "u bent ingelogd sletjee :D";
  30.  
  31. }
  32. }
  33. else
  34. {
  35. ?>
  36. <form method="post" action="" name="inloggen">
  37. <table>
  38. <tr>
  39. <td>Naam:</td>
  40. <td><input type="text" name="usern" maxlength="40"></td>
  41. </tr>
  42. <tr>
  43. <td>Wachtwoord:</td>
  44. <td><input type="password" name="pass" maxlength="20"></td>
  45. </tr>
  46. <tr>
  47. <td>&nbsp;</td>
  48. <td><input type="submit" name="submit" value="submit"></td>
  49. </tr>
  50. </table>
  51. </form>
  52. <?php
  53. }
  54. ?>

16 antwoorden

Gesponsorde links
Offline Ontani - 30/08/2005 02:03
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
moet die echo "u bent ingelogd sletjee "; niet in de if staan ipv derbuiten?
Offline MothZone - 30/08/2005 02:04
Avatar van MothZone PHP ver gevorderde
  1. <?php
  2. if(isset($_SESSION['username']) && ($_SESSION['wachtwoord']))
  3. {
  4. echo "al ingelogd";
  5. }
  6. ?>


=>
  1. <?php
  2. if(isset($_SESSION['username']) && isset($_SESSION['wachtwoord']))
  3. {
  4. echo "al ingelogd";
  5. }
  6. ?>
Offline roelh - 30/08/2005 02:05
Avatar van roelh PHP gevorderde Hmmss, veranderd, maar doet nog niet 
Het gaat me er dus om, het maakt neit uit wat ik invoer.
bijvoorbeeld tt en tt als user en pass, hij zegt altijd, ingelogd...
Offline MothZone - 30/08/2005 02:08 (laatste wijziging 30/08/2005 02:08)
Avatar van MothZone PHP ver gevorderde
  1. where name = '".$_POST['usern']."' '".$password."'"

zeker dat dit juist is? denk eerder dit:

  1. where name = '".$_POST['usern']."' AND pass = '".$password."'"


(die pass dus de veldnaam van je wachtwoord he)
Offline roelh - 30/08/2005 02:12
Avatar van roelh PHP gevorderde Hmmss neen, ook niet, had ik al geprobeerd, tis echt raar... 
Offline MothZone - 30/08/2005 02:14
Avatar van MothZone PHP ver gevorderde welke melding geeft hij dan?
'al ingelogd' of 'u bent ingelogd sletjee '
Offline roelh - 30/08/2005 02:15
Avatar van roelh PHP gevorderde "u bent ingelogd sletje"

Wat ik ook invoer...
Offline MothZone - 30/08/2005 02:34 (laatste wijziging 30/08/2005 02:34)
Avatar van MothZone PHP ver gevorderde zoals ontani al zei dus
dan moet die tekst binnen de accolades

  1. <?php
  2. }
  3. echo "u bent ingelogd sletjee :D";
  4. ?>

=>
  1. <?php
  2. echo "u bent ingelogd sletjee :D";
  3. }
  4. ?>


edit code staat toch beter binnen code-tags ipv quotes^^
Offline Thomas - 30/08/2005 07:41
Avatar van Thomas Moderator Je hebt als het goed is maar één queryresultaat als je je formulier hebt gesubmit. Omdat de mededeling "je bent ingelogd sletjee" binnen je while, maar buiten je if-statement staat, zul je deze mededeling altijd krijgen als je een bestaande username (maar niet noodzakelijkerwijs een kloppend wachtwoord) invult.

Wat je dus misschien beter kunt doen:
- maak een query met $_POST-gegevens
- kijk in eerste instantie of er resultaten zijn (1 resultaat max !)
- controleer of de query-resultaten en ingevoerde gegevens overeen komen (als je dat nog niet in de query deed)

dan kun je pas concluderen dat je sletjes ingelogd zijn.
Offline roelh - 30/08/2005 10:53
Avatar van roelh PHP gevorderde dat

  1. echo "u bent ingelogd sletjee :D";


Moet niet binnen de { }
Werkt namelijk niet dan, of het betekent dan dat er iets fout is met het script kan ook.
Ik kom er iig niet uit, kan iemand het ff nakijken en misschien verbeteren? 
Offline Simon - 30/08/2005 11:51 (laatste wijziging 30/08/2005 11:52)
Avatar van Simon PHP expert ik heb het wat herschreven, mss werkt het zo (niet getest):
  1. <?
  2. require_once ("config.php");
  3.  
  4. if(isset($_SESSION['username']) && isset($_SESSION['wachtwoord'])) {
  5. echo "al ingelogd";
  6. }
  7. else {
  8.  
  9. if(isset($_POST['submit'])) {
  10. if (trim($_POST['usern']) == "" || trim($_POST['pass']) == "") {
  11. echo "Je bent vergeten iets in te vullen.";
  12. }
  13. else {
  14.  
  15. $password = md5($_POST['pass']);
  16.  
  17. $query = mysql_query( "SELECT * FROM `users` WHERE name = '".$_POST['usern']."'" ) or die ( mysql_error() );
  18. $result = mysql_num_rows($query);
  19. if($result == 1) {
  20.  
  21. $show = mysql_fetch_assoc($query);
  22.  
  23. if($show['pass'] == $password) {
  24. $_SESSION['userid'] = $show['id'];
  25. $_SESSION['username'] = $show['name'];
  26. $_SESSION['wachtwoord'] = $show['pass'];
  27. echo "u bent ingelogd sletjee :D";
  28. }
  29. else {
  30. echo "Fout paswoord.";
  31. }
  32.  
  33. }
  34. else {
  35. echo "Deze gebruikersnaam bestaat niet.";
  36. }
  37. }
  38. }
  39. else {
  40. ?>
  41. <form method="post" action="" name="inloggen">
  42. <table>
  43. <tr>
  44. <td>Naam:</td>
  45. <td><input type="text" name="usern" maxlength="40"></td>
  46. </tr>
  47. <tr>
  48. <td>Wachtwoord:</td>
  49. <td><input type="password" name="pass" maxlength="20"></td>
  50. </tr>
  51. <tr>
  52. <td>&nbsp;</td>
  53. <td><input type="submit" name="submit" value="submit"></td>
  54. </tr>
  55. </table>
  56. </form>
  57. <?php
  58. }
  59. }
  60. ?>

probere maar 
Offline xSc - 30/08/2005 13:01
Avatar van xSc Onbekend Hmm, al eens gelet op Mysql-injection? Waarom sla je gebruikersnaam en wachtwoord op in een sessie? En wat te denken van de foutafhandeling?
Offline Simon - 30/08/2005 13:11
Avatar van Simon PHP expert ik heb niet gekeken om het script extra te beveiligen, enkel om het te laten werken 
Offline roelh - 30/08/2005 13:44
Avatar van roelh PHP gevorderde Hmmss, na hij werkt nog niet helemaal, maar dat gaat dnek ik wel lukken 
Nog 1 vraagje.

Bij reg.php

  1. $selectu = mysql_query("SELECT `usern` from `users` WHERE '".$_POST['usern']."'");
  2. $usertel = mysql_num_rows($selectu);
  3. if ($usertel = 1){


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\slettendb\sletusers\reg.php on line 9

dze fout krijg ik, maar is toch goed lijkt me 
Offline Simon - 30/08/2005 17:20
Avatar van Simon PHP expert
  1. WHERE '".$_POST['usern']."'


dit kan niet je moet opgeven waarin hij moet zoeken

  1. WHERE user ='".$_POST['usern']."'


zo dan, om de exacte te fout te weten typ je best
Citaat:
or die(mysql_error());
na een query
Offline roelh - 30/08/2005 17:27
Avatar van roelh PHP gevorderde Hmmss mja, kwam er ookal achter 10minuutjes geleden.
Bijna alles werkt nu 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.283s