Featherfoot
Legacy Member
Hi all,
Ik ben nu aan het werken aan een loginscript met cookies en sessies. Tot gisteren werkte mijn loginpagina zonder problemen. Nu heb ik vandaag enkele heel erg vreemde problemen gekregen. Mijn loginpagina doet het wel ( geen fouten, dus ik krijg geen error report ) maar als ik op inloggen klik dan krijg een deel van de website te zien, maar blijft mijn pagina laden. De knop om te refreshen en de stopknop in mijn browser flitsen dan onophoudelijk.
Als ik mijn cookies disable dan krijg ik dat probleem niet meer. Maar dan kan ik ook niet inloggen. De gegevens worden wel verwerkt, maar er wordt precies geen nieuwe sessie aangemaakt. In mijn sidebar links komt normaalgezien een melding van: "u bent ingelogd als admin" maar nu blijft er staan: " u ben momenteel niet ingelogd of niet geregistreerd". Hoewel de logingegevens en databaseverbindingen allemaal kloppen.
Hier de code:
de website zelf kan gevonden worden op:
www.codesnip.be
Ik ben nu aan het werken aan een loginscript met cookies en sessies. Tot gisteren werkte mijn loginpagina zonder problemen. Nu heb ik vandaag enkele heel erg vreemde problemen gekregen. Mijn loginpagina doet het wel ( geen fouten, dus ik krijg geen error report ) maar als ik op inloggen klik dan krijg een deel van de website te zien, maar blijft mijn pagina laden. De knop om te refreshen en de stopknop in mijn browser flitsen dan onophoudelijk.
Als ik mijn cookies disable dan krijg ik dat probleem niet meer. Maar dan kan ik ook niet inloggen. De gegevens worden wel verwerkt, maar er wordt precies geen nieuwe sessie aangemaakt. In mijn sidebar links komt normaalgezien een melding van: "u bent ingelogd als admin" maar nu blijft er staan: " u ben momenteel niet ingelogd of niet geregistreerd". Hoewel de logingegevens en databaseverbindingen allemaal kloppen.
Hier de code:
PHP:
<h1>Login</h1><br />
<?php
if(isset($_SESSION['user_id'])) {
?>
Je bent reeds ingelogd.
<script language="Javascript" type="text/javascript">
location.href='<?= $loginpage ?>';
</script>
<?
}else{
if(isset($_COOKIE['user_id'])) {
// Cookie uitlezen, sessie aanmaken
$sql = "SELECT member_ID,member_Level,member_Password,member_Active FROM tblmembers WHERE member_ID='".$_COOKIE['user_id']."'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$id = htmlspecialchars($rij->member_ID);
$status = htmlspecialchars($rij->member_Level);
$dbpass = htmlspecialchars($rij->member_Password);
$actief = htmlspecialchars($rij->member_Active);
if($dbpass == $_COOKIE['user_password'] AND $actief == 1) {
$_SESSION['user_id'] = $id;
$_SESSION['user_status'] = $status;
?>
Er is weer een sessie aangemaakt. Je wordt doorverwezen.
<script language="Javascript" type="text/javascript">
location.href='<?= $loginpage ?>';
</script>
<?
}else{
echo "Je cookie klopt niet met wat er in de database staat of je account is niet geactiveerd. Mogelijk heb je je wachtwoord veranderd.<br />\nJe oude cookies zijn verwijderd.";
setcookie("user_id", "", time() - 3600);
setcookie("user_password", "", time() - 3600);
}
}else{
if(isset($_POST['submit'])) {
// Inloggen
$sql = "SELECT member_ID,member_Username,member_Password,member_Level,member_Active FROM tblmembers WHERE member_Username='".$_POST['user']."'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$dbpass = htmlspecialchars($rij->member_Password);
$userpass = md5($_POST['pass']);
$userid = htmlspecialchars($rij->member_ID);
$userstatus = htmlspecialchars($rij->member_Level);
$useractief = htmlspecialchars($rij->member_Active);
if($dbpass == $userpass) {
if($useractief == 1) {
$_SESSION['user_id'] = $userid;
$_SESSION['user_status'] = $userstatus;
if($_POST['cookie'] == "do") {
setcookie("user_id", $userid, time() + 365 * 86400);
setcookie("user_password", $dbpass, time() + 365 * 86400);
}
?>
Je bent succesvol ingelogd.<br />
Je wordt doorgestuurd, indien er niets gebeurd <a href="<?= $loginpage ?>">klik dan hier</a>.
<script language="Javascript" type="text/javascript">
location.href='<?= $loginpage ?>';
</script>
<?
}else{
echo "Je account is niet geactiveerd. Activeer deze, door op de link in de verzonden e-mail te klikken.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
echo "Het door jouw ingevoerd wachtwoord klopt niet voor de gebruiker '".$_POST['user']."'.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
// Inlogform
?>
<form method="post" action="index.php?page=login">
<table>
<tr>
<td>Gebruikersnaam:</td><td><input type="text" name="user" /></td>
</tr>
<tr>
<td>Wachtwoord:</td><td><input type="password" name="pass" /></td>
</tr>
<tr>
<td align="right"><input type="checkbox" name="cookie" value="do" style="border: 0px;" /></td><td><small>Ingelogd blijven (cookie)</small></td>
</tr>
<tr>
<td></td><td><input type="submit" name="submit" value="Inloggen" /></td>
</tr>
</table>
<small><a href="index.php?page=passvergeten" title="Wachtwoord vergeten">Wachtwoord vergeten</a></small>
</form>
<?
}
}
}
de website zelf kan gevonden worden op:
www.codesnip.be