klein probleempje met md5 paswoord
ik ben een klein login systeempje aant maken met een md5 paswoord, het paswoord wordt opgeslagen in md5 vorm maar het controleren lukt niet
Dit is de code, weet iemand men fout?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?
session_start();
if(!empty($_POST)){
include("connect.php");
$query = "SELECT * FROM users
WHERE username ='" . $_POST["username"] . "'
AND paswoord = '" . md5($_POST["paswoord"]) . "'";
$result = mysql_query($query) or die (mysql_error());
if(mysql_num_rows($result) >0){
$username = $_POST["username"];
$paswoord = md5($_POST["paswoord"]);
session_register("username");
session_register("paswoord");
mysql_fetch_row($result);
header("Location: beveiligd.php");
exit();
}else{
$tekst = "Uw username en uw paswoord komen niet overeen
<a href=\"login.php\"> Probeer het opnieuw</a><br/>";
die($tekst);
}
}else{
header("Location : login.php");
}
?>
session_start();
if(!empty($_POST)){
include("connect.php");
$query = "SELECT * FROM users
WHERE username ='" . $_POST["username"] . "'
AND paswoord = '" . md5($_POST["paswoord"]) . "'";
$result = mysql_query($query) or die (mysql_error());
if(mysql_num_rows($result) >0){
$username = $_POST["username"];
$paswoord = md5($_POST["paswoord"]);
session_register("username");
session_register("paswoord");
mysql_fetch_row($result);
header("Location: beveiligd.php");
exit();
}else{
$tekst = "Uw username en uw paswoord komen niet overeen
<a href=\"login.php\"> Probeer het opnieuw</a><br/>";
die($tekst);
}
}else{
header("Location : login.php");
}
?>
Geeft hij altijd "Uw username en uw paswoord komen niet overeen
<a href=\"login.php\"> Probeer het opnieuw</a><br/>"? Of krijg je een MySQL error, of misschien helemaal niets?
hij geef "uw username en paswoord komen niet overeen".
Ik zie nl niet echt een fout in je code...
Ik snap het ook niet echt goed.
Dan is er dus iets mis met je registratie-script+.+
maar het registreren lukt en het opslaan in de db ook, tot daar alles perfect!
Maar als ik de controle wil doen of het wachtwoord correct is, dan gaat het mis!
Daar loopt het volledig fout:s
Dat komt waarschijnlijk doordat het wachtwoord verkeerd word opgeslagen in je database... Het kan lijken dat dit niet zo is, maar wat zoals jij het uitlegt begrijp ik dat het wel dit is...
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$username = $_POST["username"];
$paswoord = md5($_POST["paswoord"]);
session_register("username");
session_register("paswoord");
?>
$username = $_POST["username"];
$paswoord = md5($_POST["paswoord"]);
session_register("username");
session_register("paswoord");
?>
moet dat niet zijn:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$username = $_POST["username"];
$paswoord = md5($_POST["paswoord"]);
session_register($username);
session_register($paswoord);
?>
$username = $_POST["username"];
$paswoord = md5($_POST["paswoord"]);
session_register($username);
session_register($paswoord);
?>
maar verder zie ik ook eigenlijk geen fout ik je script. Je weet zeker dat de wachtwoorden gecodeerd in je database staan?
en verder is dit een beetje onzinnig:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$tekst = "Uw username en uw paswoord komen niet overeen
<a href=\"login.php\"> Probeer het opnieuw</a><br/>";
die($tekst);
?>
$tekst = "Uw username en uw paswoord komen niet overeen
<a href=\"login.php\"> Probeer het opnieuw</a><br/>";
die($tekst);
?>
doe dan gewoon meteen:
Code (php)
1
2
3
4
2
3
4
<?php
die('Uw username en uw password komen niet overeen
<a href="login.php"> Probeer het opnieuw</a><br/>');
?>
die('Uw username en uw password komen niet overeen
<a href="login.php"> Probeer het opnieuw</a><br/>');
?>
Maar ja, je kunt beter geen die gebruiken, maar gewoon even netjes een afhandeling maken, blijft je lay-out in tact en zo.
@PHP Newbie, ik heb het geprobeerd maar het lukte niet, ik zal een linkje zetten van de gegevens in de db zoals je zal zien staat er 1 gewoon wachtwoord en 2 gecodeerde wachtwoorden.
Gewijzigd op 01/01/1970 01:00:00 door wouter reyntjens
PHP Newbie schreef op 15.10.2006 00:07:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
[code]<?php
$username = $_POST["username"];
$paswoord = md5($_POST["paswoord"]);
session_register($username);
session_register($paswoord);
?>
[/quote]
Dit was nu toch zo:
<?php
session_start();
$username = $_POST["username"];
$paswoord = md5($_POST["paswoord"]);
$_SESSION['username']=$username;
$_SESSION['paswoord']=$paswoord;
?>
[code]<?php
$username = $_POST["username"];
$paswoord = md5($_POST["paswoord"]);
session_register($username);
session_register($paswoord);
?>
[/quote]
Dit was nu toch zo:
<?php
session_start();
$username = $_POST["username"];
$paswoord = md5($_POST["paswoord"]);
$_SESSION['username']=$username;
$_SESSION['paswoord']=$paswoord;
?>
Dit voorbeeld herken ik volgens mij, komt uit het PHP5-boekje van Peter Kassenaar als ik me niet vergis? Hier zijn al heel wat discussies over geweest. Zie bijv. http://www.phpfreakz.nl/forum.php?forum=4&iid=498621
Alleen al het gebruik van session_register stamt uit PHP4.0, wachtwoorden in sessies is uit den boze etc...
Probeer dan in te loggen met als login test, en als wachtwoord test... Als het werkt, is je login script niet kapot, maar je registreer script.
Als dit niet werkt, is er een grote kans dat je database structuur niet klopt, bijv varchar(16) op wachtwoorden, waardoor een md5 gecodeerd wachtwoord er niet in past...
Ik heb even gekeken op phpfreakz, is het dan juist wat ik gedaan heb?
Gebruik:
$_SESSION['username'] = $username;
voor een md5 ww op te slaan in de database, hoeveel karakters moet ik daarvoor rekenen?
32
Hoe kan ik makkelijk een wachtwoord wijzigen via een inputveld?
Gewijzigd op 01/01/1970 01:00:00 door wouter reyntjens