Hey,
ik zag Saven\'s tutorial voor een \'veilig\' login systeem en zag het commentaar erop.. Ik dacht, laat ik mijn manier eens zien.. :\')
Deze tutorial mag nergens anders gepost worden, ook niet met mijn toestemming Wat ben ik weer aardig he?
De scripts gemaakt in deze tutorial zijn niet getest, ik heb ze uit mijn hoofd geschreven. Mijn excuses dus voor enige fouten.
[strip]
Ten eerste, zoals saven al deed, is deze ook in cookies. En ja, die zijn veilig als je ze goed gebruikt, dus als je sessions wilt ga je maar andere troep tutorials zoeken..
Ten eerste ga ik eerst bedenken wat ik allemaal in de cookies ga opslaan:
Cookie Naam - Cookie Data
site_id - ID van de ingelogde
site_username - naam van de ingelogde
site_password - wachtwoord (in encryptie) van de ingelogde
Nu ik dat weet, ga ik een kleine functie schrijven die gaat kijken of je ingelogt bent.
2
3
4
5
6
7
8
<?php function ingelogd() { //de rest komt hier } ?>
Was dat simpel of niet? :\') Nu gaan we eerst kijken of de cookies ALLEMAAL bestaan...
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php function ingelogd() { if( isset( $_COOKIE[ \'site_id\' ] ) && isset( $_COOKIE[ \'site_username\' ] ) && isset( $_COOKIE[ \'site_password\' ] ) ) { //Alle cookies bestaan! } else { return false; } } ?>
Als ze bestaan, gaan we kijken of ze ook echt kloppen met de data in de database. Ze moeten ALLEMAAL in dezelfde row gevonden worden. (En de password encrytie is aan jou, ik doe altijd sha1( md5( ) ) )
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php function ingelogd() { if( isset( $_COOKIE[ \'site_id\' ] ) && isset( $_COOKIE[ \'site_username\' ] ) && isset( $_COOKIE[ \'site_password\' ] ) ) { $userCheck = mysql_query( \"SELECT * FROM users WHERE id=\'\" . mysql_real_escape_string( $_COOKIE[ \'site_id\' ] ) . \"\' AND username=\'\" . mysql_real_escape_string( $_COOKIE[ \'site_username\' ] ) . \"\' AND password=\'\" . mysql_real_escape_string( $_COOKIE[ \'site_password\' ] ) . \"\'\" ); if( mysql_num_rows( $userCheck ) == 1 ) { return true; } else { return false; } } else { return false; } } ?>
Nu als er dus 1 row is met de gegevens uit de cookies, ben je ingelogd. Dus als er 1 ding niet in orde is, ben je niet ingelogt.
Dan even een voorbeeld hoe je hem zou kunnen gebruiken:
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 function ingelogd() { if( isset( $_COOKIE[ \'site_id\' ] ) && isset( $_COOKIE[ \'site_username\' ] ) && isset( $_COOKIE[ \'site_password\' ] ) ) { $userCheck = mysql_query( \"SELECT * FROM users WHERE id=\'\" . mysql_real_escape_string( $_COOKIE[ \'site_id\' ] ) . \"\' AND username=\'\" . mysql_real_escape_string( $_COOKIE[ \'site_username\' ] ) . \"\' AND password=\'\" . mysql_real_escape_string( $_COOKIE[ \'site_password\' ] ) . \"\'\" ); if( mysql_num_rows( $userCheck ) == 1 ) { return true; } else { return false; } } else { return false; } } if( ingelogd() ) { echo \'Je bent ingelogd, mijn vriend!\'; } else { echo \'Je bent niet ingelogt, of een vieze hackert!\'; } ?>
Agja, dat was mijn tutorial. Ik weet dat het niet veel of speciaal is maar het is dan jouw keuze geweest je tijd te versipillen (als je het niks vond)
Commentaar enzo is altijd welkom, veel plezier!