IE en Firefox
Is er iemand die hiervoor een verklaring heeft, en een eventuele oplossing?
Mijn site: www.furiousfightersclan.tk
De login-pagina ziet er als volgt uit:
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
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
<?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: index.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: index.php");
}
}
?>
<html>
<head>
<title>sessies · login</title>
</head>
<body>
Code (php)
<TABLE width="95%" border="1" align="center" cellPadding="0" cellSpacing="0" borderColor="#61717a" bgColor="#647984">
<TR vAlign=top>
<TD style="FONT-SIZE: 13px; COLOR: #ffffff" borderColor="#7b8e98" align="center"><TABLE height="100%" cellSpacing="0" cellPadding="0" width="95%" border="0">
<TR>
<TD style="FONT-SIZE: 12px; COLOR: #ffffff"><B>Inloggen</B></TD>
<TD align="right" width="63" height="20"><IMG src="../images/Furious_Fighterslogo.gif" width="100" height="20"> </TD>
</TR>
</TABLE></TD>
</TR>
<TR>
<TD style="BORDER-TOP: 0px; FONT-SIZE: 12px; COLOR: #ffffff; BORDER-BOTTOM: 0px" borderColor="#7b8e98" align="center" bgColor="#52646d"><BR>
<TABLE height="100%" cellSpacing="0" cellPadding="0" width="95%" border="0">
<TR>
<TD align="center" style="FONT-SIZE: 12px; COLOR: #ffffff"><form action="index.php?inh=login" method="post">
<table width="30%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50%" style="FONT-SIZE: 12px; COLOR: #ffffff"><div align="right">gebruikersnaam : </div></td>
<td width="50%" style="FONT-SIZE: 12px; COLOR: #ffffff">
<div align="left">
<input type="text" name="naam" size="15">
</div></td>
</tr>
<tr>
<td style="FONT-SIZE: 12px; COLOR: #ffffff"><div align="right">wachtwoord : </div></td>
<td style="FONT-SIZE: 12px; COLOR: #ffffff">
<div align="left">
<input type="password" name="wacht" size="15">
</div></td>
</tr>
<tr>
<td style="FONT-SIZE: 12px; COLOR: #ffffff" colspan="2"><div align="center">
<input type="checkbox" name="memory" value="1">
onthoud mijn login (gebruikt cookie)</div></td>
</tr>
<tr>
<td style="FONT-SIZE: 12px; COLOR: #ffffff" colspan="2"> </td>
</tr>
<tr>
<td style="FONT-SIZE: 12px; COLOR: #ffffff" colspan="2"><div align="center">
<input type="submit" name="login" value="log in">
</div></td>
</tr>
</table>
<br />
<br>
</form> </TD>
</TR>
</TABLE></TD>
</TR>
<TR vAlign="top">
<TD style="FONT-SIZE: 10px; COLOR: #ffffff" borderColor="#7b8e98" align="center"><TABLE height="100%" cellSpacing="0" cellPadding="0" width="95%" border="0">
<TR>
<TD style="FONT-SIZE: 10px; COLOR: #ffffff">Written by Rhynix</TD>
</TR>
</TABLE></TD>
</TR>
</TABLE>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
} else {
// de gebruiker is ingelogd - geef een welkomstboodschap oid
// hier kun je tevens kijken of alle sessievariabelen de goede
// waarden hebben (debugging)
?>
} else {
// de gebruiker is ingelogd - geef een welkomstboodschap oid
// hier kun je tevens kijken of alle sessievariabelen de goede
// waarden hebben (debugging)
?>
<TABLE width="95%" border="1" align="center" cellPadding="0" cellSpacing="0" borderColor="#61717a" bgColor="#647984">
<TR vAlign=top>
<TD style="FONT-SIZE: 13px; COLOR: #ffffff" borderColor="#7b8e98" align="center">
<TABLE height="100%" cellSpacing="0" cellPadding="0" width="95%" border="0">
<TR>
<TD style="FONT-SIZE: 12px; COLOR: #ffffff"><B>Voorlopige status </B></TD>
<TD align="right" width="63" height="20">
<IMG src="../images/Furious_Fighterslogo.gif" width="100" height="20">
</TD>
</TR>
</TABLE>
</TD>
</TR>
<TR>
<TD style="BORDER-TOP: 0px; FONT-SIZE: 12px; COLOR: #ffffff; BORDER-BOTTOM: 0px" borderColor="#7b8e98" align="center" bgColor="#52646d">
<BR>
<TABLE height="100%" cellSpacing="0" cellPadding="0" width="95%" border="0">
<TR>
<TD style="FONT-SIZE: 12px; COLOR: #ffffff"><p>Welcome <b></b>,</p>
<p>Je bent nu ingelogt,<br>
hou er rekening mee dat<br>
je automatisch uitgelogt wordt na 60 minuten.</p>
<p>Tenzij je gekozen hebt om je login gegevens te onthouden.</p>
<p>Je wordt automatisch doorverwezen na 15 seconden, of<br>
<a href="index.php">Klik hier om het zelf te doen.</a></p>
<p><br>
<META HTTP-EQUIV='refresh' CONTENT='15; URL=index.php'>
<br>
</p></TD>
</TR>
</TABLE>
</TD>
</TR>
<TR vAlign="top">
<TD style="FONT-SIZE: 10px; COLOR: #ffffff" borderColor="#7b8e98" align="center">
<TABLE height="100%" cellSpacing="0" cellPadding="0" width="95%" border="0">
<TR>
<TD style="FONT-SIZE: 10px; COLOR: #ffffff">Written by Rhynix</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</body>
</html>
Wat zijn de foutmeldingen?
Waar gaat het fout?
Groet, lissy
"Het opgegeven wachtwoord komt niet overeen met het wachtwoord uit de database. De sessie werd terug afgebroken"
Ik heb me aangemeld via firefox, pass wordt via md5 omgezet in database. Kan deze codering er iets me te maken hebben?
code van aanmeldpagina:
<html>
<head>
<title>sessies · aanmelden</title>
</head>
<body>
<form action="index.php?inh=aanmeld" method="post">
naam <input type="text" name="naam" size="40" maxlength="20" /><br />
wachtwoord <input type="password" name="wacht1" size="40" maxlength="30" /><br />
wachtwoord opnieuw <input type="password" name="wacht2" size="40" maxlength="30" /><br />
<!--
en wat je verder over deze gebruiker bij wilt houden
bijvoorbeeld leeftijd, woonplaats, email, ...
voor het opvragen van het wachtwoord etc. etc.
hier moet je dan ook velden voor in je tabel 'members' aanmaken.
Op deze extra velden moeten hieronder ook controles uitgevoerd worden of ze ingevuld zijn!
-->
<input type="submit" name="submit" value="submit" />
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// formulier gepost, kijk of alle velden ook daadwerkelijk zijn ingevuld
} elseif(trim($_POST['naam']) <> "" && trim($_POST['wacht1']) <> "") {
// formulier ingevuld - kijk eerst of de gebruiker al bestaat
$naam = $_POST['naam'];
$res = mysql_query("SELECT * FROM users WHERE name='".$naam."'") or die(mysql_error());
if(mysql_num_rows($res) == 0) {
// geen resultaten - dit is wat we willen
// kijk of de opgegeven wachtwoorden overeenkomen
if(!strcmp($_POST['wacht1'], $_POST['wacht2'])) {
// wachtwoorden komen overeen - sla alle gegevens op in de database
// naam is al opgehaald uit het formulier
$wacht = md5($_POST['wacht1']); // versleuteld wachtwoord
$level = 1; // standaard gebruikersniveau
mysql_query("INSERT INTO users (name, pass, level) VALUES ('".$naam."','".$wacht."',".$level.")") or die(mysql_error());
// geef melding weer
?>
// formulier gepost, kijk of alle velden ook daadwerkelijk zijn ingevuld
} elseif(trim($_POST['naam']) <> "" && trim($_POST['wacht1']) <> "") {
// formulier ingevuld - kijk eerst of de gebruiker al bestaat
$naam = $_POST['naam'];
$res = mysql_query("SELECT * FROM users WHERE name='".$naam."'") or die(mysql_error());
if(mysql_num_rows($res) == 0) {
// geen resultaten - dit is wat we willen
// kijk of de opgegeven wachtwoorden overeenkomen
if(!strcmp($_POST['wacht1'], $_POST['wacht2'])) {
// wachtwoorden komen overeen - sla alle gegevens op in de database
// naam is al opgehaald uit het formulier
$wacht = md5($_POST['wacht1']); // versleuteld wachtwoord
$level = 1; // standaard gebruikersniveau
mysql_query("INSERT INTO users (name, pass, level) VALUES ('".$naam."','".$wacht."',".$level.")") or die(mysql_error());
// geef melding weer
?>
Je gegevens zijn opgeslagen.<br />
Je kunt <a href="index.php">hier</a> naartoe om in te loggen.<br />
De twee opgegeven wachtwoorden zijn niet hetzelfde.<br />
Druk op de "back" knop van je browser en voer twee identieke wachtwoorden in.<br />
Er bestaat al een gebruiker met deze naam.<br />
Druk op de "back" knop van je browser en geef een andere naam op.<br />
Alle velden dienen ingevuld te worden.<br />
Druk op de "back" toets en vul in alle velden wat in.<br />
</body>
</html>
't is allemaal server side (sessions) dus ik snap niet waarom je niet in kan loggen :/ . Misschien dat 't nog iets met je browser settings te maken heeft. Accepteerd IE wel cookies?
username: test
pass: test
en in IE werkt die bij mij perfect hooor!
Roy:
't is allemaal server side (sessions) dus ik snap niet waarom je niet in kan loggen :/ . Misschien dat 't nog iets met je browser settings te maken heeft. Accepteerd IE wel cookies?
Cookies acceptatie heeft te maken met je eigen IE instellingen (Extra - Internet opties - Privacy o.a.)
Dit voor zover voor wat betreft IE.
Groet, lissy
.tk wil ook weleens de boosdoener zijn ;)