Uitloggen.
Het is voor de gebruiker te laten uitloggen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
session_start();
$_SESSION['id'] = '';
$_SESSION['md5_id'] = '';
$_SESSION['username'] = '';
$_SESSION['sha1_password'] = '';
echo "Je bent succesvol uitgelogd.";
?>
session_start();
$_SESSION['id'] = '';
$_SESSION['md5_id'] = '';
$_SESSION['username'] = '';
$_SESSION['sha1_password'] = '';
echo "Je bent succesvol uitgelogd.";
?>
Gewijzigd op 05/06/2010 11:27:52 door Robin van der Vliet
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
session_start();
session_unset();
session_destroy();
echo "Je bent succesvol uitgelogd.";
?>
session_start();
session_unset();
session_destroy();
echo "Je bent succesvol uitgelogd.";
?>
Het kan ook komen door het login script.
Dit is het login script:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
session_start();
// MYSQL database login hidden. ;)
if (!$_SESSION['username'] = "")
{
echo "Je bent al ingelogd ".$_SESSION['username'].".";
}
else
{
echo '<form method="post">';
echo 'Gebruikersnaam <input type="text" name="username" size="15"><br>';
echo 'Wachtwoord <input type="password" name="password" size="15"><br>';
echo '<input name="submit" type="submit" value="Inloggen">';
echo '</form>';
}
if ($_POST['submit'])
{
$username = $_POST['username'];
$password = $_POST['password'];
$md5_password = (md5($password));
$username_aantal = mysql_query("Select Count(username) From gebruikers Where username = '".$username."'") or die(mysql_error());
$password_aantal = mysql_query("Select Count(username) From gebruikers Where md5_password = '".$md5_password."'") or die(mysql_error());
if (mysql_result($username_aantal, 0) && mysql_result($password_aantal, 0))
{
$sql = mysql_query("SELECT * FROM gebruikers WHERE username = '" . $username . "' AND md5_password = '" . $md5_password . "'");
$fetch = mysql_fetch_assoc($sql);
$_SESSION['id'] = $fetch['id'];
$_SESSION['md5_id'] = $fetch['md5_id'];
$_SESSION['username'] = $fetch['username'];
$_SESSION['md5_password'] = $fetch['md5_password'];
echo "Je bent succesvol ingelogd ".$_SESSION['username'].".";
}
else
{
echo "Gebruikersnaam of wachtwoord incorrect.";
}
}
?>
session_start();
// MYSQL database login hidden. ;)
if (!$_SESSION['username'] = "")
{
echo "Je bent al ingelogd ".$_SESSION['username'].".";
}
else
{
echo '<form method="post">';
echo 'Gebruikersnaam <input type="text" name="username" size="15"><br>';
echo 'Wachtwoord <input type="password" name="password" size="15"><br>';
echo '<input name="submit" type="submit" value="Inloggen">';
echo '</form>';
}
if ($_POST['submit'])
{
$username = $_POST['username'];
$password = $_POST['password'];
$md5_password = (md5($password));
$username_aantal = mysql_query("Select Count(username) From gebruikers Where username = '".$username."'") or die(mysql_error());
$password_aantal = mysql_query("Select Count(username) From gebruikers Where md5_password = '".$md5_password."'") or die(mysql_error());
if (mysql_result($username_aantal, 0) && mysql_result($password_aantal, 0))
{
$sql = mysql_query("SELECT * FROM gebruikers WHERE username = '" . $username . "' AND md5_password = '" . $md5_password . "'");
$fetch = mysql_fetch_assoc($sql);
$_SESSION['id'] = $fetch['id'];
$_SESSION['md5_id'] = $fetch['md5_id'];
$_SESSION['username'] = $fetch['username'];
$_SESSION['md5_password'] = $fetch['md5_password'];
echo "Je bent succesvol ingelogd ".$_SESSION['username'].".";
}
else
{
echo "Gebruikersnaam of wachtwoord incorrect.";
}
}
?>
Gewijzigd op 05/06/2010 11:29:14 door Robin van der Vliet
Wat werkt er nu dan niet? Kun je iets meer informatie geven?
moet worden
Deze tekst krijg ik alleen: Je bent al ingelogd .
Je moet niet te veel in een sessie zetten, het gebruikers id en een sessie met TRUE of FALSE is meer dan genoeg!
Bedankt, het is opgelost.
FRizZL isMijnUsername op 05/06/2010 11:34:05:
Offtopic, waarom zet je trouwens het wachtwoord ook in een sessie.. niet echt veilig!
Hoezo is dat niet veilig?
Je weet al dat de inloggegevens goed zijn ingevuld door de gebruiker bij het inloggen en de rest is af te leiden aan de hand van bijvoorbeeld de gebruikersid.
FRizZL isMijnUsername op 05/06/2010 12:16:05:
Je weet al dat de inloggegevens goed zijn ingevuld door de gebruiker bij het inloggen en de rest is af te leiden aan de hand van bijvoorbeeld de gebruikersid.
En als ze dan de sessie veranderen in een ander id, dan zitten ze gewoon op iemand anders account.
Lock de sessie dan aan een ip
' or 1 or '
Wel moet je het wachtwoord weten van een account.
Fix voor de username:
Niels Hop op 06/06/2010 11:30:48:
Lock de sessie dan aan een ip
En hoe doe je dat?
Peter datwiljewelwetenhe op 06/06/2010 11:57:23:
En als je magic_quotes_gpc uit heb staan (wat aangeraden is)
En hoe zet je dat uit?
Peter datwiljewelwetenhe op 06/06/2010 11:57:23:
Fix voor de username:
Dit gebeurde een stuk later in het script. ;)
Gewijzigd op 06/06/2010 12:15:59 door Robin van der Vliet
Code (php)
1
2
3
2
3
$username = $_POST['username'];
$password = $_POST['password'];
$md5_password = (md5($password));
$password = $_POST['password'];
$md5_password = (md5($password));
En vervolgens ga je deze variabelen in query's plakken ZONDER mysql_real_escape_string
Code (php)
1
2
2
$username_aantal = mysql_query("Select Count(username) From gebruikers Where username = '".$username."'") or die(mysql_error());
$password_aantal = mysql_query("Select Count(username) From gebruikers Where md5_password = '".$md5_password."'") or die(mysql_error());
$password_aantal = mysql_query("Select Count(username) From gebruikers Where md5_password = '".$md5_password."'") or die(mysql_error());
Zoieso zit het login script raar in elkaar. Je controleert of de username voorkomt en of het paswoord voorkomt. Maar nergens controleer je of username en paswoord bij elkaar horen. Als username en paswoord beide ergens in de database voorkomen (mogelijk bij verschillende gebruikers), doe je
Code (php)
1
SELECT * FROM gebruikers WHERE username = '" . $username . "' AND md5_password = '" . $md5_password . "'
Gewijzigd op 06/06/2010 14:34:19 door Piet Verhagen