Cookies of Session?
Ik heb een vraag ik ben momenteel bezig met een website waar mensen zich kunnen aanmelden en berichten naar elkaar kunnen sturen met een eigen profiel etc.
Maar goed, de site is opgebouwd als je ingelogd bent herkend hij wie je bent door middel van cookies $_COOKIE['gebruikersnaam'] maar je kan je cookie wijzigen in firefox en als ik dan de cookie wijzig naar een andere gebruiker op de site kan ik zo overal in zijn profiel en dat is uiteraard niet helemaal de bedoeling.
Heb het ook proberen op telossen met $_COOKIE['gebruikersnaam'] tevervangen door $_GET['gebruikersnaam'] maar op een of andere manier werkt dat niet echt.. Heeft iemand enig idee hoe ik dit veilig kan oplossen?
Alvast bedankt!
Gewijzigd op 08/06/2011 17:08:58 door Gurdt Hooghoudt
Het werken met sessies. is in dit geval beter. dan met cookie.
doe, laat hij geen gebruikers naam zien, komt dat door dat ik mijn from op post heb?
Ja maar het probleem is als ik na het inloggen Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<form method="post">
<table>
<tr>
<td><input name="gebruikersnaam" type="text" title="Gebruikersnaam"></td>
</tr>
<tr>
<td><input type="password" name="wachtwoord" title="Password"></td>
<td><input type="submit" name="login" value="Log in"></td>
</tr>
</table>
</form>
<table>
<tr>
<td><input name="gebruikersnaam" type="text" title="Gebruikersnaam"></td>
</tr>
<tr>
<td><input type="password" name="wachtwoord" title="Password"></td>
<td><input type="submit" name="login" value="Log in"></td>
</tr>
</table>
</form>
Gewijzigd op 06/06/2011 18:38:22 door Gurdt Hooghoudt
Dat lijkt mij inderdaad wel logisch.
Als je een sessie maakt dan moet je hem er ook zo uithalen.
Voorbeeld
Met een form log je in als je de form gavalideerd hebt maak je een sessie aan dus zo
$_SESSION['gebruikersnaam'] = hier de gebruikersnaam vanuit de database.
Het weergeven is dan als volgt
echo $_SESSION['gebruikersnaam'];
Maar als je $_GET hebt krijg je de naam in je url te zien en kun je hem ook vervagnen volgens mij...
Beter is zoals Thomas zegt met sessions te werken want die kan niemand veranderen volgens mij...
ik denk wel dat het te maken heeft omdat hij post gebruik ipv get thomas...
Maar hij wil niet met $_GET het formulier gaan vullen.
Hij heeft een inlog formulier die na het inloggen toegaat.
Als je daar method="get" van maakt dan krijg je het in de url te zien.
En dus zijn probleem heeft niks te maken met het formulier.
Zie na het inloggen.
Dus eerst formulier invullen dan inloggen.
En dan gebruikersnaam ophalen met echo $_SESSION['gebruikernsaam'].
Edit het kan ook dat ie zijn form gewoon rechstreeks in de URL wil zetten.
En dan de $_GET['gebruikersnaam'] daar uit wil halen.
Maar gezien zijn eerste Topic zie ik dat niet daar maakt de TS'er een cookie.
Gewijzigd op 06/06/2011 18:55:58 door thomas de vries
ja hij vroeg zich af waarom hij de gebruikersnaam niet kon uitlezen, en of dat komt doordat hij $_GET gebruikt ipv $_POST, en jij zegt dat dat niet zo is, dat bedoelde ik meer ;)
De waardes van deze cookies moeten in de database beiden overeenkomen met elkaar, en in dat geval geeft de inlog-check-functie 'true' door.
hoezo misscommunicatie hier ;)
Ontopic
Maak ipv cookie's Sessies dat werkt beter en veiliger.
Denk ook aan mysql_real_escape_string
Maar ik krijg het nog niet voor elkaar ik zal even de login script posten tot hoever ik hem heb (werkend maar wel met COOKIES.)
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php $sqll = "SELECT gebruikersnaam, wachtwoord FROM leden WHERE gebruikersnaam='".addslashes($_POST['gebruikersnaam'])."'";
$sqll = mysql_query($sqll);
$sql = mysql_fetch_assoc($sqll);
if(empty($_POST['gebruikersnaam'])) {
echo '<p>U heeft geen gebruikersnaam ingevoerd.</p>';
exit();
}
else if(empty($_POST['wachtwoord'])) {
echo '<p>U heeft geen wachtwoord ingevoerd.</p>';
exit();
}
else if($sql['wachtwoord'] != md5($_POST['wachtwoord'])) {
echo '<p>Uw wachtwoord klopt niet.</p>';
exit();
}
else {
setcookie("gebruikersnaam", $_POST['gebruikersnaam']);
setcookie("wachtwoord", md5($_POST['wachtwoord']));
setcookie("ip", $_SERVER['REMOTE_ADDR']);
echo '<p>U bent succesvol ingelogd.</p>';
echo '<meta http-equiv="refresh" content="1;URL='.$websiteurl.'" />';
exit();
}?>
$sqll = mysql_query($sqll);
$sql = mysql_fetch_assoc($sqll);
if(empty($_POST['gebruikersnaam'])) {
echo '<p>U heeft geen gebruikersnaam ingevoerd.</p>';
exit();
}
else if(empty($_POST['wachtwoord'])) {
echo '<p>U heeft geen wachtwoord ingevoerd.</p>';
exit();
}
else if($sql['wachtwoord'] != md5($_POST['wachtwoord'])) {
echo '<p>Uw wachtwoord klopt niet.</p>';
exit();
}
else {
setcookie("gebruikersnaam", $_POST['gebruikersnaam']);
setcookie("wachtwoord", md5($_POST['wachtwoord']));
setcookie("ip", $_SERVER['REMOTE_ADDR']);
echo '<p>U bent succesvol ingelogd.</p>';
echo '<meta http-equiv="refresh" content="1;URL='.$websiteurl.'" />';
exit();
}?>
Form:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php echo '
<form method="post">
<table>
<tr>
<td><input name="gebruikersnaam" type="text" title="Gebruikersnaam"></td>
</tr>
<tr>
<td><input type="password" name="wachtwoord" title="Password"></td>
<td><input type="submit" name="login" value="Log in"></td>
</tr>
</table>
</form>
';?>
<form method="post">
<table>
<tr>
<td><input name="gebruikersnaam" type="text" title="Gebruikersnaam"></td>
</tr>
<tr>
<td><input type="password" name="wachtwoord" title="Password"></td>
<td><input type="submit" name="login" value="Log in"></td>
</tr>
</table>
</form>
';?>
Alleen als ik bijvoorbeeld alleen:
Doet laat hij ook niets zien..
Gewijzigd op 08/06/2011 10:45:20 door Gurdt Hooghoudt
Als je sessions gebruikt moet je bovenaan voordat je uitput gaat genereren de functie session_start() aanroepen.
Even over het eerste script wat je net gepost hebt:
Je voert eerst de query uit, en vervolgens ga je pas controleren of er iets ingevuld is?
Gebruik mysql_real_escape_string() en niet addslashes(). Maak ook een nette foutafhandeling (kijk op php.net/functienaam naar wat de functie mysql_query enzo als returnwaarde hebben).
Je manier van errors is een beetje apart. Als iemand niets in vult krijgt hij eerst alleen de melding 'U heeft geen gebruikersnaam ingevoerd.' te zien. Als hij dan wel een gebruikersnaam invult krijgt hij alleen de melding 'U heeft geen wachtwoord ingevoerd.' te zien. So on and so forth. Een handigere manier zou zo iets zijn:
heb nu
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
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
<?php $sqll = "SELECT gebruikersnaam, wachtwoord FROM leden WHERE gebruikersnaam='".addslashes($_POST['gebruikersnaam'])."'";
$sqll = mysql_query($sqll);
$sql = mysql_fetch_assoc($sqll);
$errors = array();
if (empty($_POST['gebruikersnaam'])) {
$errors[] = 'U heeft geen gebruikersnaam ingevoerd.';
}
if (empty($_POST['wachtwoord'])) {
$errors[] = 'U heeft geen wachtwoord ingevoerd.';
}
else if($sql['wachtwoord'] != md5($_POST['wachtwoord'])) {
echo '<p>Uw wachtwoord klopt niet.</p>';
}
$lijst_met_errors = implode('<br />', $errors);
echo $lijst_met_errors;
else {
setcookie("gebruikersnaam", $_POST['gebruikersnaam']);
setcookie("wachtwoord", md5($_POST['wachtwoord']));
setcookie("ip", $_SERVER['REMOTE_ADDR']);
echo '<p>U bent succesvol ingelogd.</p>';
echo '<meta http-equiv="refresh" content="1;URL='.$websiteurl.'" />';
exit();
}?>
$sqll = mysql_query($sqll);
$sql = mysql_fetch_assoc($sqll);
$errors = array();
if (empty($_POST['gebruikersnaam'])) {
$errors[] = 'U heeft geen gebruikersnaam ingevoerd.';
}
if (empty($_POST['wachtwoord'])) {
$errors[] = 'U heeft geen wachtwoord ingevoerd.';
}
else if($sql['wachtwoord'] != md5($_POST['wachtwoord'])) {
echo '<p>Uw wachtwoord klopt niet.</p>';
}
$lijst_met_errors = implode('<br />', $errors);
echo $lijst_met_errors;
else {
setcookie("gebruikersnaam", $_POST['gebruikersnaam']);
setcookie("wachtwoord", md5($_POST['wachtwoord']));
setcookie("ip", $_SERVER['REMOTE_ADDR']);
echo '<p>U bent succesvol ingelogd.</p>';
echo '<meta http-equiv="refresh" content="1;URL='.$websiteurl.'" />';
exit();
}?>
Maar dan zegt dreamweaver dat er een fout in zit op de regel van de tweede else na echo $lijst_met_errors; (Regel 18)
Heb ook al de regel waar hij de wachtwoord controleerd weg gehaald omdat ik dacht misschien kan je maar een keer Else gebruiken maar dat was het ook niet..
Gewijzigd op 08/06/2011 11:10:33 door Gurdt Hooghoudt
- Het beste is, zoals Aar al aangaf, niet de gebruikersnaam in een cookie op te slaan, maar de user_id in combinatie met een random hash (dus ook niet het gehashte wachtwoord). Gebruik het wachtwoord van de gebruiker alleen om diegene te laten inloggen. De user id en random hash gebruik je dan op iedere pagina om te controleren of iemand is ingelogd.
- En gebruik een salt voor het hashen van je wachtwoord. Hierdoor worden simpele wachtwoorden als "hallo" toch erg moeilijk om te kraken doordat een moeilijk te achterhalen string voor, danwel na, het wachtwoord wordt geplaatst (zie voorbeeld hieronder).
Hieronder heb ik een opzetje gemaakt (even snel in elkaar geflanst, dus er kunnen kleine foutjes inzitten):
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
49
50
51
52
53
54
55
56
57
58
59
60
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
49
50
51
52
53
54
55
56
57
58
59
60
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$errors = array();
if(!isset($_POST['gebruikersnaam']) OR !isset($_POST['wachtwoord']) OR trim($_POST['wachtwoord']) == '' OR trim($_POST['wachtwoord']) == '') {
$errors[] = 'U hebt uw gegevens niet volledig ingevuld!';
} else {
$salt = 'j&21Hkas#k$JakW'; // WILLEKEURIGE STRING (NIET VERANDEREN WANNEER DE WEBSITE LIVE IS)
$wachtwoord_hash = sha1($salt.$_POST['wachtwoord']);
$sql = mysql_query("SELECT id, gebruikersnaam FROM tabel WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['gebruikersnaam'])."' AND wachtwoord = '".$wachtwoord_hash."' LIMIT 1");
if($sql) {
if(mysql_num_rows($sql) > 0) {
$user_data = mysql_fetch_assoc($sql);
$random_hash = sha1($salt.uniq_id(mt_rand(), true)); // EEN RANDOM HASH DIE JE IN EEN SESSIE OF COOKIE KAN STOPPEN. DEZE DIEN JE DAN OOK IN DE DATABASE BIJ DE BETREFFENDE GEBRUIKER TE PLAATSEN ZODAT HET GEVERIFIEERD KAN WORDEN (ZOALS HIERONDER)
$sql_update = mysql_query("UPDATE tabel SET hash = '".$random_hash."' WHERE id = ".$user_data['id']);
if($sql_update) {
// HIER COOKIE en / of SESSIE AANMAKEN INCLUSIEF DE USER ID EN DE RANDOM HASH
echo 'U bent succesvol ingelogd onder de naam: '.$user_data['gebruikersnaam'];
} else
$errors[] = 'Er is een fout opgetreden tijdens het aanmaken van een sessie!';
} else
$errors[] = 'Uw gebruikersnaam en / of wachtwoord zijn onjuist!';
} else
$errors[] = 'Er is een fout opgetreden bij het opvragen van uw gegevens!';
}
if(is_array($errors) AND count($errors) > 0) {
foreach($errors AS $error) {
echo $error.'<br />';
}
}
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$errors = array();
if(!isset($_POST['gebruikersnaam']) OR !isset($_POST['wachtwoord']) OR trim($_POST['wachtwoord']) == '' OR trim($_POST['wachtwoord']) == '') {
$errors[] = 'U hebt uw gegevens niet volledig ingevuld!';
} else {
$salt = 'j&21Hkas#k$JakW'; // WILLEKEURIGE STRING (NIET VERANDEREN WANNEER DE WEBSITE LIVE IS)
$wachtwoord_hash = sha1($salt.$_POST['wachtwoord']);
$sql = mysql_query("SELECT id, gebruikersnaam FROM tabel WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['gebruikersnaam'])."' AND wachtwoord = '".$wachtwoord_hash."' LIMIT 1");
if($sql) {
if(mysql_num_rows($sql) > 0) {
$user_data = mysql_fetch_assoc($sql);
$random_hash = sha1($salt.uniq_id(mt_rand(), true)); // EEN RANDOM HASH DIE JE IN EEN SESSIE OF COOKIE KAN STOPPEN. DEZE DIEN JE DAN OOK IN DE DATABASE BIJ DE BETREFFENDE GEBRUIKER TE PLAATSEN ZODAT HET GEVERIFIEERD KAN WORDEN (ZOALS HIERONDER)
$sql_update = mysql_query("UPDATE tabel SET hash = '".$random_hash."' WHERE id = ".$user_data['id']);
if($sql_update) {
// HIER COOKIE en / of SESSIE AANMAKEN INCLUSIEF DE USER ID EN DE RANDOM HASH
echo 'U bent succesvol ingelogd onder de naam: '.$user_data['gebruikersnaam'];
} else
$errors[] = 'Er is een fout opgetreden tijdens het aanmaken van een sessie!';
} else
$errors[] = 'Uw gebruikersnaam en / of wachtwoord zijn onjuist!';
} else
$errors[] = 'Er is een fout opgetreden bij het opvragen van uw gegevens!';
}
if(is_array($errors) AND count($errors) > 0) {
foreach($errors AS $error) {
echo $error.'<br />';
}
}
}
?>
Gewijzigd op 09/06/2011 17:24:12 door Arjan -
Maar ik heb de script even zitten kopiëren en plakken.
Maar ik zie dat er gebruik wordt gemaakt van Hash en Salt, maar is dit een andere manier van wachtwoorden omzetten?
Want ik maak nu gebruik van md5 wachtwoorden hoe zet ik dit om want ik heb het script nu wel werkend maar als ik me eigen probeer in teloggen geeft hij aan dat er iets niet klopt en ik denk zelf dat dat komt door de wachtwoord omdat die in de database met MD5 is gemaakt.. hoe los ik dit op ?
Toevoeging op 08/06/2011 15:33:53:
ik heb even zitten prutsen maar volgens mij klopt er meer niet want ik heb mijn wachtwoord gesalt en in de database ingevoerd maar werkt niet.. als ik inlog zegt hij nog steeds dat er iets niet klopt..
Hmm ik kom er nog steeds niet uit, wie kan mij uit de brand helpen :)
Hierdoor is het relatief eenvoudige wachtwoord nu opeens zeer moeilijk te kraken. Wanneer je dit wachtwoord hasht, door middel van sha1, dan is dit een veilige manier om je wachtwoorden op te slaan.
Bij de controle wanneer iemand wil inloggen zal je dus dezelfde salt moeten gebruiken om te controleren of het wachtwoord klopt. Dit snap je hopelijk?
En in mijn script heb ik het zo gemaakt dat bij het inloggen een random hash wordt gegenereerd die gebruikt wordt voor de authentificatie (de controle of iemand is ingelogd). Hier komt dus geen wachtwoord meer aan te pas. Het wachtwoord van de gebruiker gebruik je alleen om de gebruiker te laten inloggen.
Wanneer je dus md5 gehashte wachtwoorden in je database hebt staan zal mijn code niet goed werken. Je dient uiteraard ook deze wachtwoorden te voorzien van dezelfde salt en een sha1 hash. Want je kan begrijpen dat bij een controle deze nooit overeen komen wanneer je verschillende hash technieken gebruikt....
Wat snap je precies nog meer niet of is het zo duidelijk?
Gewijzigd op 09/06/2011 16:50:19 door Arjan -
Code (php)
OR trim($_POST['wachtwoord']) != '' moest weg.
Daarna kreeg ik een melding over een type fout die heb ik er nu ook uitgehaald.
Maar voor de rest wat moet ik nu doen om een veilige sessie testarten, met het ID en random hash?
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php $lidid = mysql_query("SELECT id FROM leden WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['gebruikersnaam'])."' AND wachtwoord = '".$wachtwoord_hash."' LIMIT 1");
$hash = mysql_query("SELECT hash FROM leden WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['gebruikersnaam'])."' AND wachtwoord = '".$wachtwoord_hash."' LIMIT 1");
$_SESSION['id'] = $lidid;
$_SESSION['hash'] = $hash;
?>
$hash = mysql_query("SELECT hash FROM leden WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['gebruikersnaam'])."' AND wachtwoord = '".$wachtwoord_hash."' LIMIT 1");
$_SESSION['id'] = $lidid;
$_SESSION['hash'] = $hash;
?>
Gewijzigd op 09/06/2011 17:10:43 door Gurdt Hooghoudt
Die random hash sla je op in de database bij de juiste gebruiker (hetgeen ik dus al gedaan heb).
Ook sla je de hash in de sessie op, inclusief de user id. Ook is het handig om tijdens het inloggen het ipadres op te slaan en deze ook telkens te controleren. Wanneer deze niet overeenkomt dan is het 99% zeker dat je sessie gehijackt is.
De random hash en user id (en eventueel ook het ipadres) controleer je vervolgens op elke pagina waar je ingelogd dient te zijn met de gegevens in de database.
Bijvoorbeeld (verwerkt in mijn vorige code):
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
session_start();
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$errors = array();
if(!isset($_POST['gebruikersnaam']) OR !isset($_POST['wachtwoord']) OR trim($_POST['wachtwoord']) == '' OR trim($_POST['wachtwoord']) == '') {
$errors[] = 'U hebt uw gegevens niet volledig ingevuld!';
} else {
$salt = 'j&21Hkas#k$JakW'; // WILLEKEURIGE STRING (NIET VERANDEREN WANNEER DE WEBSITE LIVE IS)
$wachtwoord_hash = sha1($salt.$_POST['wachtwoord']);
$sql = mysql_query("SELECT id, gebruikersnaam FROM tabel WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['gebruikersnaam'])."' AND wachtwoord = '".$wachtwoord_hash."' LIMIT 1");
if($sql) {
if(mysql_num_rows($sql) > 0) {
$user_data = mysql_fetch_assoc($sql);
$random_hash = sha1($salt.uniq_id(mt_rand(), true)); // EEN RANDOM HASH DIE JE IN EEN SESSIE OF COOKIE KAN STOPPEN. DEZE DIEN JE DAN OOK IN DE DATABASE BIJ DE BETREFFENDE GEBRUIKER TE PLAATSEN ZODAT HET GEVERIFIEERD KAN WORDEN (ZOALS HIERONDER)
$sql_update = mysql_query("UPDATE tabel SET hash = '".$random_hash."', ipadres = INET_ATON('".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."') WHERE id = ".$user_data['id']);
if($sql_update) {
// HIER COOKIE en / of SESSIE AANMAKEN INCLUSIEF DE USER ID EN DE RANDOM HASH
$_SESSION['user_id'] = $user_data['id'];
$_SESSION['user_hash'] = $random_hash;
echo 'U bent succesvol ingelogd onder de naam: '.$user_data['gebruikersnaam'];
} else
$errors[] = 'Er is een fout opgetreden tijdens het aanmaken van een sessie!';
} else
$errors[] = 'Uw gebruikersnaam en / of wachtwoord zijn onjuist!';
} else
$errors[] = 'Er is een fout opgetreden bij het opvragen van uw gegevens!';
}
if(is_array($errors) AND count($errors) > 0) {
foreach($errors AS $error) {
echo $error.'<br />';
}
}
}
?>
session_start();
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$errors = array();
if(!isset($_POST['gebruikersnaam']) OR !isset($_POST['wachtwoord']) OR trim($_POST['wachtwoord']) == '' OR trim($_POST['wachtwoord']) == '') {
$errors[] = 'U hebt uw gegevens niet volledig ingevuld!';
} else {
$salt = 'j&21Hkas#k$JakW'; // WILLEKEURIGE STRING (NIET VERANDEREN WANNEER DE WEBSITE LIVE IS)
$wachtwoord_hash = sha1($salt.$_POST['wachtwoord']);
$sql = mysql_query("SELECT id, gebruikersnaam FROM tabel WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['gebruikersnaam'])."' AND wachtwoord = '".$wachtwoord_hash."' LIMIT 1");
if($sql) {
if(mysql_num_rows($sql) > 0) {
$user_data = mysql_fetch_assoc($sql);
$random_hash = sha1($salt.uniq_id(mt_rand(), true)); // EEN RANDOM HASH DIE JE IN EEN SESSIE OF COOKIE KAN STOPPEN. DEZE DIEN JE DAN OOK IN DE DATABASE BIJ DE BETREFFENDE GEBRUIKER TE PLAATSEN ZODAT HET GEVERIFIEERD KAN WORDEN (ZOALS HIERONDER)
$sql_update = mysql_query("UPDATE tabel SET hash = '".$random_hash."', ipadres = INET_ATON('".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."') WHERE id = ".$user_data['id']);
if($sql_update) {
// HIER COOKIE en / of SESSIE AANMAKEN INCLUSIEF DE USER ID EN DE RANDOM HASH
$_SESSION['user_id'] = $user_data['id'];
$_SESSION['user_hash'] = $random_hash;
echo 'U bent succesvol ingelogd onder de naam: '.$user_data['gebruikersnaam'];
} else
$errors[] = 'Er is een fout opgetreden tijdens het aanmaken van een sessie!';
} else
$errors[] = 'Uw gebruikersnaam en / of wachtwoord zijn onjuist!';
} else
$errors[] = 'Er is een fout opgetreden bij het opvragen van uw gegevens!';
}
if(is_array($errors) AND count($errors) > 0) {
foreach($errors AS $error) {
echo $error.'<br />';
}
}
}
?>
Gewijzigd op 09/06/2011 17:30:01 door Arjan -
Kan ik jou misschien in een prive bericht even de hele pagina sturen, want nu heb ik het cookie gedeelte er nog half in zitten :$..