login  Naam:   Wachtwoord: 
Registreer je!
 Forum

controleren op bestaan van gebruikersnaam en (Opgelost)

Offline thomasje - 07/05/2008 11:55
Avatar van thomasjeMySQL beginner Ik ben weer tegen een probleempje aangelopen.
Ik controleer bij het inloggen of de registratie nummer, gebruikersnaam en de daarbij behorende wachtwoord bestaan. Maar de code stopt er volgens mij vanaf regel 20 mee, want als ik niks invult geeft hij wel een foutmelding maar voer ik een verkeer gebruikersnaam registratie numer of wachtwoord in dan geeft hij geen foutmelding, en hij stuurt je ook niet door.
Hoe kan ik dit oplossen?

Let niet teveel op mijn code want dat is een groote troep.

Hier kan je mijn code vinden: http://www.plaatscode.be/8139/

8 antwoorden

Gesponsorde links
Offline Stijn - 07/05/2008 12:19
Avatar van Stijn PHP expert Die controles of bepaalde velden leeg zijn mogen weg, aangezien je al controlleert in je eerste if statement dat alle velden ingevuld zijn.

$num_rows bevat een aantal rijen van de database? Deze moet gelijk zijn aan 1.

$fout mag je weglaten. Je moet if( $fout == '' ) veranderen in if( count($aFouten) == 0 ).

  1. elseif($_POST['wachtwoord1'] <> ($gebruikerwachtwoord))
Dit en de if eronder mag ook weg. Als $num_rows niet gelijk is aan 1 dan wil dit zeggen dat die if ook false zal teruggeven.

Je kan je script aanzienlijk inkorten dus.
Offline thomasje - 07/05/2008 12:36
Avatar van thomasje MySQL beginner bedankt voor je tips, maar het werkt nog niet, tenminste hij controleert niet of de gebruikersnaam in de db voorkomt.
Offline Simax - 07/05/2008 12:54
Avatar van Simax Onbekend Query uitvoeren en de resultaten vergelijken met de invoer. Als deze overeen komen, laten inloggen.
Offline thomasje - 07/05/2008 13:20 (laatste wijziging 07/05/2008 13:20)
Avatar van thomasje MySQL beginner ja hoe?
Kan je eens een voorbeeld geven
Offline marten - 07/05/2008 13:20
Avatar van marten Beheerder
Citaat:
Let niet teveel op mijn code want dat is een groote troep.


Waarom fixen de meeste scripters dit niet eerst voordat ze verder gaan? Je geeft het zelf al aan dat het een troep is. Clean het dan. Werkt een stuk makkelijker en je kan veel beter debuggen.
Offline thomasje - 07/05/2008 13:23 (laatste wijziging 07/05/2008 17:03)
Avatar van thomasje MySQL beginner ja, maar nu ik die tips van stijn1989 heb gekregen weet ik hoe, maar anders zou ik het ook niet veel korter kunnen maken. En als ik het er niet bij had gezet dan hadden jullie het nu gezegd wat een rommeltje, dus vandaar. Mischien heb je ook nog wel een oplossing voor het probleem?
Offline Stijn - 07/05/2008 23:41
Avatar van Stijn PHP expert Geef je query gedeelte eens. Zet or die(mysql_error() na mysql_query().

Offline Joost - 08/05/2008 04:02 (laatste wijziging 08/05/2008 04:05)
Avatar van Joost PHP expert
thomasje schreef:
ja hoe?
Kan je eens een voorbeeld geven


Klein voorbeeldje:

  1. <?php
  2. $fouten = 0;
  3.  
  4. $user = $_POST['username'];
  5. $regnr = $_POST['registratienummer'];
  6. $pass = $_POST['password'];
  7.  
  8. if($user == "" OR $regnr == "" OR $pass == ""){ // Als er iets leeg is
  9. $fouten++;
  10. } else {
  11.  
  12. $sql = mysql_query("SELECT * FROM `users` WHERE `user`='".$user."' AND `regnr`='".$regnr."' AND `pass`='".$pass."'") or die(mysql_error());
  13.  
  14. if(mysql_num_rows($sql) == 1){ // Als er resultaat is
  15.  
  16. // $_SESSIE dingen
  17. // doorsturen met header
  18.  
  19. } else {
  20.  
  21. $fouten++;
  22.  
  23. } // Aflsuiten van IF voor resultaat
  24.  
  25. } // Afsluiten van IF voor lege velden
  26.  
  27. if($fouten > 0){
  28. echo "Fout met inloggen!";
  29. }
  30.  
  31. ?>


Dat is het principe van een loginscript.
Let op: Dit is geen volwaardig script, komt geen beveiliging in voor, werkt niet erg praktisch dus kan veel beter:P
Maar dat is wel hoe het werkt.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.209s