Session bliver destroyed.
Hejsa.Jeg har et login script, som der desværre er nogle få brugere der har problemer med. De bliver logget korrekt ind og bliver budt velkommen, men når de så forsøger at åbne en side der kræver login, får de at vide at de ikke er logget.
Jeg har lavet en lille fil der viser om session er sat, og det er de ikke, så et allerandet sted må session blive destroyed.
Jeg har vedlagt lidt kode, skal måske lige fortælle at jeg gerne vil koden om så den checker på en cookie istedet for IP.
bruger.php
<?php
$dbhost = "host";
$dbuser = "user";
$dbpass = "password";
$database = "database";
include("Lockfiles/settings.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function setlogin(login){
location.href='set.php?login='+login+''};
</script>
</head>
<body>
<?
if(false == check_login()){
?>
<div id="Layer2" style="background-image:url(Images/Login.gif); filter:alpha(opacity=40);-moz-opacity:.4;opacity:.4;"></div>
<div id="Layer3">
<?
if(isset($_SESSION["besked"])) {
echo $_SESSION["besked"];
unset($_SESSION["besked"]);
}
?>
<table width="200" border="0" cellspacing="1" >
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" class="style7">
<tr>
<td colspan="4" height="15"></td>
</tr>
<tr>
<td width="10%" rowspan="8"></td>
<td width="85%" colspan="2" ><span class="style5">Login:</span></td>
<td width="5%" rowspan="8"></td>
</tr>
<tr>
<td colspan="2">Brugernavn</td>
</tr>
<tr>
<td colspan="2"><input type="text" name="brugernavn" id="brugernavn" value="<? echo $logg[0] ?>"></td>
</tr>
<tr>
<td colspan="2">Password</td>
</tr>
<tr>
<td colspan="2"><input type="password" name="password" id="password" value="<? echo $logg[1] ?>"></td>
</tr>
<tr>
<td>
<input type="submit" value="Login" name="login"></td>
<td><a href="Loginhelp.html" target="Contents" onMouseOver="window.status='Klik på spørgsmåltegnet, for at få hjælp !'; return true" onmouseout="window.status=''; return true"><img src="Images/question.gif" border="0"></a></td>
</tr>
<tr>
<td colspan="2"><a href="fguser.php" target="Contents">Har du glemt dit password ?</a></td>
</tr>
</form>
</table>
</div>
<?
}else{
// Brugeren er logget ind, lav en log ud knap
?>
<div id="Layer2" style="background-image:url(Images/Logout.gif); filter:alpha(opacity=60);-moz-opacity:.6;opacity:.6;"></div>
<div id="Layer3" >
<table width="200" border="0" cellspacing="1" align="center">
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
<tr>
<td rowspan="8" width="5%"></td>
<td width="90%"> </td>
<td rowspan="8" width="5%"></td>
</tr>
<tr>
<td ><div align="center">Velkommen</div></td>
</tr>
<tr>
<td><div align="center"><? echo $_SESSION["Navn"]; ?></div></td>
</tr>
<tr>
<td><div align="center">
<input name="logud" type="submit" value="Log ud" onClick="
parent.document.getElementById('Contents').src = 'Right.html';">
</div></td>
</tr>
<tr>
<td align="center" height="12"></td>
</tr>
<tr>
<td align="center"><? echo '<input type="checkbox" name="chkbx2" value="1" onclick="setlogin(\''.$_SESSION["No"].'\');"' . $chk . '>';?><label>Husk mig!</label> </td>
</tr>
<tr>
<td align="center" height="12"></td>
</tr>
<tr>
<td align="center">
<? if($_SESSION["Admin"] == 1){ echo '<a href="Lockfiles/admin.php" target="Contents">Administrator</a>';}?>
</td>
</tr>
</form>
</table>
</div>
<?
} // end false tjek_login
?>
</body>
</html>
settings.php
<?php
function check_login() {
if(isset($_SESSION["user"], $_SESSION["ip"]) && $_SESSION["ip"] == $_SERVER["REMOTE_ADDR"]) {
return true;
}
return false;
}
session_start();
if(isset($_POST["logud"])) {
$_SESSION = array();
session_destroy();
}
$default_text = "Forkert bruger og/eller password!!!";
if(isset($_POST["login"])) {
if(($_POST["brugernavn"] > "" ) && ($_POST["password"] > "")) {
login($_POST["brugernavn"],$_POST["password"]);
}
}
function login($brugernavn,$password){
global $dbhost;
global $dbuser;
global $dbpass;
global $database;
$db = @mysql_pconnect($dbhost, $dbuser, $dbpass) or die ("Kunne desværre ikke forbinde til databasen!".$dbuser);
@mysql_select_db($database, $db) or die ("Kunne desværre ikke forbinde til valgte database!");
$sql = 'SELECT s.Id, s.Nummer,s.Login, s.Password, s.Navn, s.Admin, b.Berth FROM sejler s
LEFT JOIN berth b ON s.Nummer = b.Client
WHERE Login = \''.$brugernavn.'\' AND Password = \''.$password.'\'';
$check = mysql_query($sql) or die ("Sql fejl" );
if(mysql_num_rows($check) != 0){
$users = mysql_fetch_array($check);
if ($users['Berth'] <= ''){
$sql = 'SELECT s.Id, s.Nummer,s.Login, s.Password, s.Navn, s.Admin, b.Berth FROM sejler s
LEFT JOIN berth b ON s.Nummer = b.Lejer
WHERE Login = \''.$brugernavn.'\' AND Password = \''.$password.'\'';
$check = mysql_query($sql) or die ("Sql fejl" );
$users = mysql_fetch_array($check);
}
$_SESSION["user"] = $brugernavn;
$_SESSION["ip"] = $_SERVER["REMOTE_ADDR"];
$_SESSION["Navn"] = $users['Navn'];
$_SESSION["No"] = $users['Nummer'];
$_SESSION["Plads"] = $users['Berth'];
$_SESSION["ClId"] = $users['Id'];
$_SESSION["Admin"] = $users['Admin'];
$date = date('d-m-Y');
$date = split('
- ',$date);
return true;
}else{
$_SESSION["besked"] = "Ingen bruger fundet";
return false;
}
}
?>
