Beste allemaal,

Ik gebruik het login script van deze tutorial:
http://www.phphulp.nl/php/tutorials/8/155/

Nu heb ik alles precies zo opgevolgd. Mijn connection.php ziet er alleen iets anders uit:
<?
$gebruiker = "";
$wachtwoord = "";
$database = "";
$host = "localhost";

mysql_connect($host, $gebruiker, $wachtwoord) or die("Er is geen connectie met de database");
mysql_select_db($database) or die("Er is geen database geselecteerd");

?>

Registreren gaat prima: user en password worden netjes ge-insert in de database. Echter als ik dan op login.php wil gaan inloggen, krijg ik steeds de melding "U hebt geen goede combinatie van emailadres en wachtwoord gebruikt! Ga terug"

Met andere woorden, hij loopt stuk op dit stuk:

<?php
session_start();
if(!empty($_POST)){
include("connection.php");
$query = "SELECT * FROM users WHERE email='" . $_POST["email"] ."' AND wachtwoord='". $_POST["wachtwoord"] . "'";

$result = mysql_query($query);

if(mysql_num_rows($result) > 0){
$user = $_POST["email"];
$wachtwoord = $_POST["wachtwoord"];
$_SESSION['user'] = $user;
$_SESSION['wachtwoord'] = $wachtwoord;

header("Location: beveiligd.php");
exit();
}
else {
$text = "U hebt geen goede combinatie van emailadres en wachtwoord gebruikt! <A onclick='javascript: window.back();'>Ga terug</A>";
die($text);
} }
else{
//pagina verkeerd aangeroepen
header("Location: login.php");
}?>

Klopt: if(!empty($_POST)){ etc wel? Is het nu niet zo dat als er geen login gegevens zijn gesubit dat ie dan juist wel wat wil gaan toevoegen, wat natuurlijk dan juist niet de bedoeling is? Of is er iets mis met mijn databaseverbinding?

Alvast bedankt, ik ben een beetje radeloos!
Nergens om, maar die tutorial is uit 2004. Je zet de user en het wachtwoord in de sessie, allebei nergens voor nodig. Je hoeft maar 1 keer te checken of user en wachtwoord kloppen, namelijk als iemand inlogt.

Ik heb ook een tut over inlogscripts geschreven, misschien is het een idee om die eens door te lezen.
Dank je wel Jan! Die tutorial is voor mij nieuw, heb die nog nooit gezien. Ik ga er mee aan de slag!
Hoi Jan, ik heb je tutorial gelezen, en uitgeprobeerd, ik krijg nu deze melding als ik wil inloggen:

Fatal error: Call to undefined function: mysql_real_escape_string() in /var/www/vhosts/phphulp.nl/httpdocs/admin1/authenticatie.php on line 23

?

En wat betekent je opmerking "Het password sla je op in je DB met een SHA1 hash, daarom staat SHA1 dus ook in de query"

Moet ik in MySQL "password" nog een extra eigenschap meegeven?

Alvast bedankt!

SCO01
Ik heb net even getest op een server waar een nieuwere mysql op draait, enals ik de query terugbreng naar dit:

SELECT id
FROM members
WHERE username = '" . mysql_real_escape_string ($username) . "'
AND password = '" . mysql_real_escape_string ($password) . "'
";

dan werkt het wel.. Ik doe dus wat fout met de SHA1.. Weet iemand wat ik fout doe?

Tx!
Ja, dan moet je even kijken welke PHP versie mysql_real_escape_string ondersteunt, en welke MySQL versie SHA1 ondersteunt.
waarom zet je het wachtwoord in de sessie?
@ Jeroen, dat was inderdaad een oud script, ik gebruik nu Jan's script.

@ Jan, mijn nieuwe mysql ondersteunt het gelukkig wel, en daar moet ie ook op draaien. Hij doet het dus nu helemaal, ik zit alleen nog met dat SHA1. Als ik die in de query laat staan, dan gaat ie dus terug naar login.php. Moet ik SHA1 ook in MySQL invoeren ergens?

Overigens Jan, heel erg bedankt voor je tutorial! Hij is heel erg duidelijk. Ik weet alleen niet hoe het zit met uitloggen?
SCO schreef op 05.12.2006 22:16
@ Jeroen, dat was inderdaad een oud script, ik gebruik nu Jan's script.

@ Jan, mijn nieuwe mysql ondersteunt het gelukkig wel, en daar moet ie ook op draaien. Hij doet het dus nu helemaal, ik zit alleen nog met dat SHA1. Als ik die in de query laat staan, dan gaat ie dus terug naar login.php. Moet ik SHA1 ook in MySQL invoeren ergens?

Overigens Jan, heel erg bedankt voor je tutorial! Hij is heel erg duidelijk. Ik weet alleen niet hoe het zit met uitloggen?


ok ^^
en btw, inplaats van sha1 zou je ook md5 kunnen gebruikt, of ze combineren :)

zoiets => md5(sha1($pass))

en dan bij het inloggen zo checken

if(md5(sha1($pass)) == $mysqlassocresult['pass'])

Reageren