Beste PHP'ers,
Dit is de code die we gebruiken:
Zoals hier te zien is:
Iemand enig idee hoe we dat voor elkaar kunnen krijgen?
Bedankt!
Wessel
Dit is de code die we gebruiken:
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
| <?php require("connect.php"); // connectie met database maken en database selecteren session_start(); // start een sessie of zet een sessie voort // controleer hier of iemand inlogt - dit moet _voor_ de <HTML>-tag gebeuren gebeuren if(isset($_POST['login'])) { if(trim($_POST['naam']) <> "" && trim($_POST['wacht']) <> "") { // naam en wachtwoord zijn ingevuld. Haal het (versleutelde) wachtwoord en // het gebruikersniveau dat bij deze gebruikersnaam hoort uit de database op // en vergelijk dit wachtwoord met het in het formulier opgegeven wachtwoord. $naam = $_POST['naam']; $wacht = md5($_POST['wacht']); $res = mysql_query("SELECT id, pass, level FROM users where name='".$naam."'") or die(mysql_error()); // Als er een resultaat is, oftewel er bestaat een gebruiker met de naam $naam if(mysql_num_rows($res) > 0) { $row = mysql_fetch_assoc($res); // aanname: het wachtwoord in de database is eenmalig gehashed mbv de functie md5() // vergelijk het opgehaalde wachtwoord met een versleutelde versie van het in het // formulier opgegeven wachtwoord if(!strcmp($wacht, $row['pass'])) { // alle gegevens kloppen // v1.2 extra functionaliteit, onthouden login // wil de gebruiker zijn gegevens onthouden ? if(isset($_POST['memory'])) { // set cookie (voor 2 maanden) en onthoud het IP // gebruik hierbij het id van de gebruiker setcookie("login_cookie", $row['id'].";".$row['pass'], time()+3600*24*31*2, "/"); $ip = $_SERVER['REMOTE_ADDR']; mysql_query("UPDATE users SET last_ip='".$ip."' WHERE id=".$row['id']) or die(mysql_error()); } // vul sessievariabelen $_SESSION['suser'] = $naam; // gebruikersnaam van ingelogd persoon $_SESSION['slevel'] = $row['level']; // bijbehorende gebruikersniveau $_SESSION['stime'] = time(); // de huidige tijd $_SESSION['smaxidle'] = 60 * 60; // het aantal seconden inactiviteit } else { // wachtwoorden komen niet overeen, breek de sessie weer af $_SESSION = array(); session_destroy(); } // geef de resultaten van deze query weer vrij unset($row); mysql_free_result($res); } // ververs, of de gebruikersnaam/wachtwoord combinatie nou klopt of niet, de pagina header("Location: login.php"); } } ?> <!DOCTYPE HTML> <html lang="nl" xml:lang="nl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;" /> <title>Sporty</title> <link rel="stylesheet" href="stylesheet.css"> </head> <body> <!-- begin container --> <div id="container"> <div id="header"><a href="javascript: window.history.back(1)"><img src="img/button_terug.jpg" alt="Terug" width="68" height="30" class="button"></a></div> <div id="main"><h2>Profiel overzicht</h2></div> <div id="list">Gebruikersnaam: <?= $_SESSION['suser'] ?></div> <?php include "connect.php"; //verbinding maken $query = "SELECT email FROM users"; //query is aangemaakt $sql = mysql_query($query) or die ( mysql_error( ) ); //query is uitgevoerd while($record = mysql_fetch_object($sql)){ echo "<div id=\"list\">$record->email</div>"; } ?> <br /> <!-- einde container --> </div> </body> </html> |
Zoals hier te zien is:
code:
laat het script de gebruikersnaam helemaal goed zien. Nu willen we alleen ook het e-mail adres van de gebruiker laten zien. In de database heet die kolom 'email'. Wel kunnen we door te zeggen SELECT email FROM users alle e-mailadressen laten zien die in de database voorkomen. Maar we willen alleen die laten zien, van de gebruiker die op dit moment is ingelogd.1
| <div id="list">Gebruikersnaam: <?= $_SESSION['suser'] ?></div> |
Iemand enig idee hoe we dat voor elkaar kunnen krijgen?
Bedankt!
Wessel