doorverwijzen
ik heb een login script die wel werkt.. alleen niet zoals ik het wil.
Als ik ben ingelogd, verdwijnen de login 'bars', en daarvoor in plaats komt een hyperlink naar de beveiligde site (kan je echt alleen in als je ingelogd ben) en een uitlog link. Ik wil echter dat als ik ingelogd ben... dat de beveiligde site automatisch opent.. en dat is dus het probleem.
index 6 (let niet op de naam) is de inlogpagina... voorbeeld is de beveiligde pagina
wie kan me hierbij helpen
kon helaas de code niet veel kleiner maken aangezien ik bang ben dat jullie dan wat missen
Groeten
Koen
Mijn 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
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
<?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("Gebruikersnaam/Wachtwoord klopt niet"));
// 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();
//echo 'Gebruikersnaam en wachtwoord komen niet overeen';
}
// 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: voorbeeld.php");
echo 'Gebruikersnaam en wachtwoord komen niet overeen';
}
}
?>
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("Gebruikersnaam/Wachtwoord klopt niet"));
// 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();
//echo 'Gebruikersnaam en wachtwoord komen niet overeen';
}
// 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: voorbeeld.php");
echo 'Gebruikersnaam en wachtwoord komen niet overeen';
}
}
?>
Code (php)
Code (php)
Hi <b></b>,<br />
<a href="voorbeeld.php">voorbeeld pagina</a><br />
<a href="logout.php">uitloggen</a><br />
Gewijzigd op 01/01/1970 01:00:00 door Koen
ik hoop dat het zo een beetje goed is aangepast.. was namelijk niet mijn bedoeling om het tegen de regels te posten.