Problemer med login-system
Hej,Jeg har et login system, som i mange år har fungeret fint. Nu er der dog begyndt at ske det, at det til tider ikke virker.
Jeg modtager dog ingen fejlmeddelelse.
Mit loginsystem virker ved, at man logger ind og hvis oplysningerne passer med MySQL-databasen bliver man sendt videre til index2.php.
Hvis der er fejl i det indtastede bliver man sendt tilbage til index.php
Det virker ofte fint, men nogle gange bliver man sendt videre til index2.php (som om alt er fint), men det er som om sessionen ikke er sat og man bliver derfor redirected til siden login_udloebet.php.
Når problemet står på varer det ofte et par timer før man kan logge sig ind. Det er lidt frustrerende.
På forhånd tak! :)
/******** LOGIN FORMEN *****/
<?php
session_start();
include("inc/config.php");
/***** BRUGEREN ER IKKE LOGGET IND ******/
if(!isset($_SESSION['id'])){
$head .='<script src="js/loginbox.js" type="text/javascript"></script>';
$_SESSION[rights]=0;
if(isset($_GET[wronglogin]) && $_GET[wronglogin]!="Brugernavn"){
$nick_value = $_GET[wronglogin];
$onclick_nick = $_GET[wronglogin];
}else{
$nick_value = "Brugernavn";
$onclick_nick = "";
}
if(isset($_GET['temp_sti'])){
$temp_sti = "?temp_sti=".$_GET['temp_sti'];
}else{
$temp_sti = str_replace("&", "_OG_", $_SERVER['QUERY_STRING']);
$temp_sti = str_replace("?", "_HUH_", $temp_sti);
$temp_sti = str_replace("=", "_LIG_", $temp_sti);
$temp_sti = "?temp_sti=".$temp_sti;
}
$loginbox=' <form method="POST" action="system/login.php'.$temp_sti.'" name="logind">
<input type="text" value="'.$nick_value.'" onclick="document.logind.nick.value=\''.$onclick_nick.'\';" name="nick" size="23">
<div id="div1"><input name="pass_temp" type="text" value="Password" onfocus="changeBox()" size="23"></div>
<div id="div2" style="display:none"><input name="pass" id="password" type="password" value="" onBlur="restoreBox()" size="23"></div>
<input type="submit" value="Log ind"><input type="submit" value="Opret bruger" ONCLICK=\'document.logind.action ="?go=opret"\'>
</form>';
/***** BRUGEREN ER LOGGET IND ******/
}else{
$loginbox='Du er logget ind som <b>'.$_SESSION[nick].'</b> (<a href="system/logaf.php">Log ud</a>)<br>
<a href="?go=settings">Rediger personlige oplysninger</a>';
}
Siden man bliver snedt videre til:
/********* login.php **********/
<?php
session_start();
include("../inc/config.php");
include("../inc/func.php");
/**** HVIS MAN IKKE ALLEREDE ER LOGGET IND ****/
if(!isset($_SESSION['id'])){
$check = mysql_query("SELECT * FROM users WHERE nick='".skriv($_POST[nick])."' AND pass='".md5($_POST[pass])."'")or die(mysql_error());
$users = mysql_fetch_assoc($check);
/******* HVIS NICK/PASS ER FORKERT *******/
if (mysql_num_rows($check) == 0) {
header("Location: ../index.php?go=glemtpass&wronglogin=".$_POST['nick']."&temp_sti=".$_GET['temp_sti']);
/******** HVIS LOGIN ER KORREKT ******/
}else{
/*******HENT ID, NICK, RETTIGHEDER *************/
$_SESSION['id'] = $users['id'];
$_SESSION['nick'] = $users['nick'];
$_SESSION['rights'] = $users['rights'];
$_SESSION['last_login'] = $users['last_login'];
/******* SEND TIL STI ********/
if(isset($_GET['temp_sti'])){
$temp_sti = str_replace("_OG_", "&", $_GET['temp_sti']);
$temp_sti = str_replace("_HUH_", "?", $temp_sti);
$temp_sti = str_replace("_LIG_", "=", $temp_sti);
$temp_sti = "?".$temp_sti;
}
mysql_query("UPDATE users SET last_login='".time()."' WHERE id='".$_SESSION[id]."'");
header("Location: ../index.php".$temp_sti);
}
/***** HVIS MAN ALLEREDE ER LOGGET IND *****/
}else{
header("Location: ../index.php");
}
?>