inloggen met md5
<H2 ALIGN="CENTER">
Inloggen
</H2>
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
30
31
32
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
30
31
32
<?php
$ip=$_SERVER['REMOTE_ADDR'];
if (!isset($_SESSION["gebruiker"])) {
$naam=mysql_real_escape_string($_POST["naam"]);
$wachtwoord=mysql_real_escape_string($_POST["wachtwoord"]);
if ($naam=="" || !isset($naam) ) {
echo '<p ALIGN="CENTER"><FONT COLOR="RED"><B>Geen naam ingevuld!</B></FONT><BR /><A HREF="login.php">Opnieuw</A></P>';
include("footer.php");
die;
}
if ($wachtwoord=="" || !isset($wachtwoord) ) {
echo '<p ALIGN="CENTER"><FONT COLOR="RED"><B>Geen wachtwoord ingevuld!</B></FONT><BR /><A HREF="login.php">Opnieuw</A></P>';
include("footer.php");
die;
}
$query="SELECT * FROM gebruikers WHERE naam='$naam'";
$uitvoeren=mysql_query($query) or die (mysql_error());
if (mysql_num_rows($uitvoeren)==0) {
echo '<p ALIGN="CENTER"><FONT COLOR="RED"><B>Die gebruikersnaam bestaat niet!</B></FONT><BR /><A HREF="login.php">Opnieuw</A></P>';
include("footer.php");
die;
}
$rij=mysql_fetch_assoc($uitvoeren);
if ($wachtwoord!=$rij["wachtwoord"]) {
echo '<p ALIGN="CENTER"><FONT COLOR="RED"><B>Fout wachtwoord!</B></FONT><BR /><A HREF="login.php">Opnieuw</A></P>';
include("footer.php");
die;
}
$_SESSION["gebruiker"]=$naam;
echo '<p ALIGN="CENTER"><FONT COLOR="GREEN"><B>Je bent nu ingelogd!</B></FONT></P>';
mysql_query("UPDATE gebruikers SET laatstip='$ip', laatsttijd=NOW()") or die (mysql_error());
?>
$ip=$_SERVER['REMOTE_ADDR'];
if (!isset($_SESSION["gebruiker"])) {
$naam=mysql_real_escape_string($_POST["naam"]);
$wachtwoord=mysql_real_escape_string($_POST["wachtwoord"]);
if ($naam=="" || !isset($naam) ) {
echo '<p ALIGN="CENTER"><FONT COLOR="RED"><B>Geen naam ingevuld!</B></FONT><BR /><A HREF="login.php">Opnieuw</A></P>';
include("footer.php");
die;
}
if ($wachtwoord=="" || !isset($wachtwoord) ) {
echo '<p ALIGN="CENTER"><FONT COLOR="RED"><B>Geen wachtwoord ingevuld!</B></FONT><BR /><A HREF="login.php">Opnieuw</A></P>';
include("footer.php");
die;
}
$query="SELECT * FROM gebruikers WHERE naam='$naam'";
$uitvoeren=mysql_query($query) or die (mysql_error());
if (mysql_num_rows($uitvoeren)==0) {
echo '<p ALIGN="CENTER"><FONT COLOR="RED"><B>Die gebruikersnaam bestaat niet!</B></FONT><BR /><A HREF="login.php">Opnieuw</A></P>';
include("footer.php");
die;
}
$rij=mysql_fetch_assoc($uitvoeren);
if ($wachtwoord!=$rij["wachtwoord"]) {
echo '<p ALIGN="CENTER"><FONT COLOR="RED"><B>Fout wachtwoord!</B></FONT><BR /><A HREF="login.php">Opnieuw</A></P>';
include("footer.php");
die;
}
$_SESSION["gebruiker"]=$naam;
echo '<p ALIGN="CENTER"><FONT COLOR="GREEN"><B>Je bent nu ingelogd!</B></FONT></P>';
mysql_query("UPDATE gebruikers SET laatstip='$ip', laatsttijd=NOW()") or die (mysql_error());
?>
<BR />
<p ALIGN="CENTER"><A HREF="index.php">Home</A></P>
Code (php)
Nou heb ik bij het registreren gezorgt dat het wachtwoord gecodeerd word met md5, maar als ik dan wil inloggen, dan kan ik alleen inloggen met dat gecodeerde wachtwoord. Maar waar in die bovenstaande code, moet ik wat veranderen, en wat moet ik daar dan veranderen, zodat ik wel gewoon kan inloggen met het normale wachtwoord waarmee je hebt geregistreerd en niet met het gecodeerde wachtwoord?
Alvast Bedankt!
Groetjes Jorian
WHERE wachtwoord = 'blablabla'
Offtopic: GA NOOIT ROEPEN DAT HET WACHTWOORD OF DE USER NIET GOED IS!!! Hiermee maak je het hackers wel héél erg gemakkelijk...
Over dat offtopic, ik he nog geen site ofzo met dat loginsysteem erin dus niemand kan nog een account aan maken alleen ik zelf op mijn pc..
Gewijzigd op 01/01/1970 01:00:00 door jorian
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT
*
FROM
gebruikers
WHERE
naam='$naam'
AND
wachtwoord = MD5('$wachtwoord')
Even een voorbeeldje dat je zelf in jouw code mag gaan inpassen. Hier wordt de md5-functie van MySQL gebruikt, je kunt uiteraard ook de md5-functie van php gebruiken. Gebruik die op het moment dat je de variabele $wachtwoord aanmaakt, wel zo eenvoudig en zelfs nog een fractie veiliger.
De 'functie' die() die jij nogal veel gebruikt, hoort niet in een goed stuk php te staan. Beetje erg onvriendelijk voor je bezoekers, er gaat iets fout (jouw fout!) en jij roept dan: STERF!!!
In het vervolg gewoon een fraaie foutafhandeling maken, maar dat kan later ook nog wel. Het is maar dat je het weet, kun je er later rekening mee houden.
*
FROM
gebruikers
WHERE
naam='$naam'
AND
wachtwoord = MD5('$wachtwoord')
Even een voorbeeldje dat je zelf in jouw code mag gaan inpassen. Hier wordt de md5-functie van MySQL gebruikt, je kunt uiteraard ook de md5-functie van php gebruiken. Gebruik die op het moment dat je de variabele $wachtwoord aanmaakt, wel zo eenvoudig en zelfs nog een fractie veiliger.
De 'functie' die() die jij nogal veel gebruikt, hoort niet in een goed stuk php te staan. Beetje erg onvriendelijk voor je bezoekers, er gaat iets fout (jouw fout!) en jij roept dan: STERF!!!
In het vervolg gewoon een fraaie foutafhandeling maken, maar dat kan later ook nog wel. Het is maar dat je het weet, kun je er later rekening mee houden.
ok, maar als ik dat wat jij zei veranderd, dan kent ie de username niet eens meer... :S
jorian schreef op 30.06.2007 11:39:
Ik zeg niet dat jij moet stoppen met nadenken!ok, maar als ik dat wat jij zei veranderd, dan kent ie de username niet eens meer... :S
Je kunt in 1 query meerdere controles in 1x doen. Wanneer een record aan al deze voorwaarden voldoet, zul je dit record als result-set retour krijgen. Wanneer dus het user-id en het wachtwoord correct zijn, dan krijg je een resultaat en anders niet. In dat laatste geval is de user dus niet ingelogd: 'user-id niet gevonden of wachtwoord niet correct. Probeer het nogmaals.'. Lijkt mij een fraaie en vooral nietszeggende foutmelding. Dat vinden hackers niet zo leuk, maar dat is dan niet anders.
$rij=mysql_fetch_assoc($uitvoeren);
if ($wachtwoord!=$rij["wachtwoord"]) {
echo '<p ALIGN="CENTER"><FONT COLOR="RED"><B>Fout wachtwoord!</B></FONT><BR /><A HREF="login.php">Opnieuw</A></P>';
include("footer.php");
die;
}
veranderd in:
$query2="SELECT * FROM gebruikers WHERE wachtwoord= MD5('$wachtwoord')";
$uitvoeren2=mysql_query($query2) or die (mysql_error());
if (mysql_num_rows($uitvoeren2)==0) {
echo '<p ALIGN="CENTER"><FONT COLOR="RED"><B>Fout wachtwoord!</B></FONT><BR /><A HREF="login.php">Opnieuw</A></P>';
include("footer.php");
die;
En nou doet hij het!
Zie mijn reactie van 11:33 voor 1 query met 2 vergelijkingen.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
want dit stukje: if (mysql_num_rows($uitvoeren)==0) {
snap ik niet dus ik weet niet wat ik dan daar moet veranderen..
Gewijzigd op 01/01/1970 01:00:00 door jorian
jorian schreef op 30.06.2007 11:52:
'werkte niet' is een foutmelding waar niemand wat mee kan. Leg eens uit wat er precies gebeurd, echo de query eens, voer de query eens direct in PHPmyAdmin in uit, etc. etc. etc. Ga dus debuggen.ja dat snap ik wel, maar dat werkte niet.. maar wat mot ik dan nog meer weg halen ? en wat moet ik nog meer veranderen ?
want dit stukje: if (mysql_num_rows($uitvoeren)==0) {
snap ik niet dus ik weet niet wat ik dan daar moet veranderen..
want dit stukje: if (mysql_num_rows($uitvoeren)==0) {
snap ik niet dus ik weet niet wat ik dan daar moet veranderen..
is volgens mij fout, $uitvoeren hoort daar bij mijn weten niet te staan. Sla de handleiding er eens op na, daar word je een stuk wijzer van.
De vergelijking gebruik je overigens om te kijken of er 0 resultaten zijn opgehaald. In dat geval zijn er dus geen gegevens gevonden en kan er niet worden ingelogd.