login  Naam:   Wachtwoord: 
Registreer je!
 Forum

login

Offline notf - 20/11/2006 23:58 (laatste wijziging 24/11/2006 17:31)
Avatar van notfOnbekend hallo,
ik heb een formulier gemaak dat in een sql database een id, naam en wachtwoord zet (registratieformulier). Nu zou ik deze gegevens wille gebruike voor mijn login. hoe kan ik dat naam en wachtwoord gaan controleren ?

alvast bedankt
notf

14 antwoorden

Gesponsorde links
Offline Nowan - 21/11/2006 00:19
Avatar van Nowan Nieuw lid Je maakt een tweede formulier, (loginformulier).

Je haalt de waarden (SELECT) van de registratie uit de tabel (WHERE naam = $_POST['naam']) en kijkt of die dezelfde zijn als wat de gebruiker in het loginformulier heeft ingevuld...

Dat is de basis... als je een échte login wilt zal je wat meer research moeten doen over sessies, cookies, timestamps, ...

Er staan trouwens genoeg kant en klare login-tutorials op het internet...

Succes!
Offline notf - 22/11/2006 17:50
Avatar van notf Onbekend ok, ik ben nu dus alles stop voor stap aan het doen, maar vanaf het moment dat ik mijn $sql er in zet krijg ik een lege pagina   ik heb nu volgende code:
  1. <?php
  2. echo $_POST["naam"];
  3. echo $_POST["password"];
  4. include("connect.php");
  5. $sql = "SELECT naam, password FROM `leden` WHERE naam = ".$_POST['naam'].;
  6. ?>
Offline webrik - 22/11/2006 18:05
Avatar van webrik HTML interesse maar je echo't toch ook niets, dus niet gek dat het een lege pagina wordt 
Offline Xtent - 22/11/2006 20:05 (laatste wijziging 22/11/2006 20:13)
Avatar van Xtent Onbekend
  1. <?php
  2. include('connect.php');
  3.  
  4. // Controle of er op login is geklikt.
  5. if(isset($_POST['submit']))
  6. {
  7. // Tellen hoeveel gebruikers er zijn met deze informatie (is mogelijk wel onveilig zonder controle op bepaalde tekens).
  8. $UserCount = mysql_query("SELECT COUNT(id) FROM leden WHERE naam = '".$_POST['naam']."' AND password = '".$_POST['password']."'") or die (mysql_error());
  9. if(mysql_result($UserCount, 0) == 1)
  10. { // Mocht er maar 1 user zijn met die informatie laat het volgende zien
  11. $sql = mysql_query("SELECT naam, password FROM leden WHERE naam = '".$_POST['naam']."'") or die (mysql_error());
  12. $row = mysql_fetch_assoc($sql);
  13.  
  14. echo $row['naam'].' bestaat';
  15. }
  16. else
  17. { // Is er geen gebruiker met die informatie, of zijn er meerdere laat dan dit zien.
  18. echo 'Geen gebruiker gevonden.';
  19. }
  20. }
  21. else
  22. {
  23. ?>
  24. <form method="POST" action="">
  25. <input type="text" name="naam" /><br />
  26. <input type="password" name="password" /><br />
  27. <input type="submit" name="submit" value="Login" />
  28. </form>
  29. <?php
  30. }
  31. ?>


Iets richting dat...
Wat krijg je daarbij?
Offline Abbas - 22/11/2006 20:50 (laatste wijziging 22/11/2006 21:28)
Avatar van Abbas Gouden medaille

Crew .NET
@XTent: jij kijkt na of er een gebruiker bestaat met die naam, hij moet de eigenlijk login hebben...

  1. <?php
  2.  
  3. include("connect.php");
  4.  
  5. if(isset($_POST['submit'])) //kijken of er op knopje geklikt werd
  6. {
  7. $naam = $_POST['naam'];
  8. $pass = md5($_POST['password']); //als je het paswoord md5 't in de DB...
  9.  
  10. $query = mysql_query("SELECT naam, password FROM `leden` WHERE naam = ' " . $naam . " ' ") or die (mysql_error());
  11. $control = mysql_fetch_assoc($query);
  12.  
  13. if($control['paswoord'] == $pass)
  14. {
  15. echo "ingelogd";
  16. //ingelogd, sessies of cookies toestande gebruike
  17. }
  18. else
  19. {
  20. echo "foute invoer";
  21. // fout, opnieuw....
  22. }
  23. }


tuurlijk moet je nog meer controleren (JavaScript, leeg veld, ...)
en beveiligen, enz...  
Offline notf - 22/11/2006 21:11
Avatar van notf Onbekend ik heb nu titjes zn script getest, als ik dus bij de controle zet dat bij ingelogd 'echo "succes"' en bij fout een andere boodschap zet, krijg ik in alle 2 de gevallen een lege pagina, is dit normaal? 
Offline Xtent - 22/11/2006 21:20 (laatste wijziging 22/11/2006 21:21)
Avatar van Xtent Onbekend Titjes, volgens mij heeft die genoeg aan dat van mij, als de gebruiker bestaat moeten de sessies / cookies geset worden, bij jouw werkt het gewoon op de zelfde manier.

Naast dat zit er in jouw script ook nog een fout in je query, je hebt namelijk:

naam = " . $naam . "
wat
naam = '". $naam ."'

hoort te zijn
Offline Abbas - 22/11/2006 21:26 (laatste wijziging 22/11/2006 21:27)
Avatar van Abbas Gouden medaille

Crew .NET
ja dat is waar,
jouw script kan hij ook gebruiken

notf: kijk opnieuw naar men scriptje  
Offline notf - 22/11/2006 21:36 (laatste wijziging 24/11/2006 17:32)
Avatar van notf Onbekend fijnafwerking van Xtent zijn script:
  1. <?php
  2. include('connect.php');
  3.  
  4. // Controle of er op login is geklikt.
  5. if($_SERVER["REQUEST_METHOD"] == "POST")
  6. {
  7. // Tellen hoeveel gebruikers er zijn met deze informatie (is mogelijk wel onveilig zonder controle op bepaalde tekens).
  8. $UserCount = mysql_query("SELECT COUNT(id) FROM `leden` WHERE naam = '".$_POST['naam']."' AND password = '".$_POST['password']."'") or die (mysql_error());
  9. if(mysql_num_rows($UserCount) > 0)
  10. { // Mocht er maar 1 user zijn met die informatie laat het volgende zien
  11. $sql = mysql_query("SELECT naam, password FROM `leden` WHERE naam = '".$_POST['naam']."'") or die (mysql_error());
  12. $row = mysql_fetch_assoc($sql);
  13.  
  14. echo $row['naam'].' bestaat';
  15. }
  16. else
  17. { // Is er geen gebruiker met die informatie, of zijn er meerdere laat dan dit zien.
  18. echo 'Geen gebruiker gevonden.';
  19. }
  20. }
  21. else
  22. {
  23. ?>
  24. <form method="POST" action="">
  25. <input type="text" name="naam" /><br />
  26. <input type="password" name="password" /><br />
  27. <input type="submit" name="submit" value="Login" />
  28. </form>
  29. <?php
  30. }
  31. ?>

if(mysql_num_rows($UserCount) > 0) heb ik veranderd, maar na even testen blijkt het toch nog niet te werken  Hij geeft telkens aan dat er 1 combinatie gevonden is, ook al klopt dit niet.
Offline Xtent - 24/11/2006 19:26 (laatste wijziging 24/11/2006 19:26)
Avatar van Xtent Onbekend Omdat ik COUNT in de query gebruikte zal je

if(mysql_result($UserCount, 0) == 1)

moeten gebruiken. Zoals er ook normaal instond.
Offline notf - 25/11/2006 19:40
Avatar van notf Onbekend Mer zo als het er in stond werkt het ook niet 
Zal ook eens op een andere server proberen, misschien dat mijn host gewoon niet goed is 
Offline Abbas - 25/11/2006 22:19
Avatar van Abbas Gouden medaille

Crew .NET
notf ik heb men scriptje aangepast, heb je het al eens opnieuw geprobeerd?
misschien dat het nu wel werkt?
Offline Ibrahim - 26/11/2006 01:33 (laatste wijziging 26/11/2006 01:34)
Avatar van Ibrahim PHP expert tutorial script

heb het geschreven in dreamweaver, maar plaatscode heeft er rare dingen mee gedaan, maar het is leesbaar 

graag gedaan , had toch niets te doen

edit: oja slapen  doe ik nu wel 
Offline notf - 28/11/2006 17:25
Avatar van notf Onbekend echt merci voor het script, heb het zojuist getest en het is perfect wat ik nodig had. Met een geweldige uitleg erbij, zeer leerzaam  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.206s