Mam pewien problem z sesjami w logowaniu.
W pliku logowanie.php jest caly mechanizm odpowiedzialny za logowanie (IMG:
http://forum.php.pl/style_emoticons/default/snitch.gif)
I wszystko niby dziala jednak do tabeli w mysql o strukturze
CREATE TABLE `download_admin_sesje` (
`SessionID` varchar(32) collate utf8_polish_ci NOT NULL DEFAULT '',
`SessionData` blob NOT NULL,
`LastUsed` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`SessionID`)
);
Dodaje:
SessionID SessionData LastUsed
ses4693913f6068f [BLOB - 63 B] 2007-07-10 16:01:35
Zamiast wlasnie SessionData dodaje [BLOB - 63 B] lub czasami w SessionID jest pusto
Czy w ponizszym kodzie jest blad jakis ktory to powoduje?
logowanie.php
<?php
function login()
{
$login = $_POST['login'];
$password = $_POST['password'];
{
$sql = "SELECT * FROM download_admin_users WHERE (login = '$login' AND password = '$password')";
if ($rowki == 1)
{
$user_id = $row[0];
return (true);
}
}
?>
<center>
<form method="post" action="
<?php echo("$PHP_SELF"); ?>">
<table width="200" border="0" cellspacing="1" cellpadding="1">
<tr>
<td width="100" valign="middle">Login:</td>
<td width="100" valign="middle"><input type="text" name="login" size="20"></td>
</tr>
<tr>
<td width="100" valign="middle">Password:</td>
<td width="100" valign="middle"><input type="password" name="password" size="20"></td>
</tr>
</table>
<input type="submit" value="Zaloguj"> <input type="reset" value="Reset" size="20">
</form>
</center>
<?
return (false);
}
function start()
{
global $SessionID, $Session, $Session_onStart; register_shutdown_function("koniec");
{
$sql = "SELECT SessionData FROM download_admin_sesje WHERE SessionID='$SessionID'" .
" AND UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(LastUsed) < 3600";
{
return;
}
}
if (login())
{
$Session["login"] = $GLOBALS["login"];
$Session["password"] = $GLOBALS["password"];
if(isset($GLOBALS["user_id"])) $Session["user_id"] = $GLOBALS["user_id"];
SetCookie("SessionID", $GLOBALS["SessionID"], 0
, $url["path"]); }
else
}
function koniec()
{
$sql = "REPLACE INTO download_admin_sesje VALUES ('$SessionID', '" .
}
{
$sql = "DELETE FROM download_admin_sesje WHERE UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(LastUsed) > 43200";
}
}
function wyloguj()
{
$sql = "DELETE FROM download_admin_sesje WHERE SessionID='$SessionID'";
$Session = "";
$SessionID = "";
}
start();
?>