Jak masz dostęp do bazy danych to proponowałbym:
1. władować sesje do bazyCREATE TABLE admin_sessions (
ses_id varchar(32) NOT NULL DEFAULT '',
ses_time int(11) NOT NULL DEFAULT '0',
ses_start int(11) NOT NULL DEFAULT '0',
ses_value text NOT NULL,
PRIMARY KEY (ses_id)
);
2. wykorzystać jakąś klase sesji - bardzo fajna klasa:/// session.php ///
<?php
/* Create new object of class */
$ses_class = new session();
/* Change the save_handler to use the class functions */
array(&$ses_class, '_close'), array(&$ses_class, '_read'), array(&$ses_class, '_write'), array(&$ses_class, '_destroy'), array(&$ses_class, '_gc'));
/* Start the session */
class session
{
/* Define the mysql table you wish to use with
this class, this table MUST exist. */
var $ses_table = \"admin_sessions\";
/* Change to 'Y' if you want to connect to a db in
the _open function */
var $db_con = \"Y\";
/* Configure the info to connect to MySQL, only required
if $db_con is set to 'Y' */
var $db_host = \"localhost\";
var $db_user = \"username\";
var $db_pass = \"pass\";
var $db_dbase = \"database name\";
/* Create a connection to a database */
function db_connect() {
$this->db_user,
$this->db_pass);
if (!$mysql_connect || !$mysql_db) {
return FALSE;
} else {
return TRUE;
}
}
/* Open session, if you have your own db connection
code, put it in here! */
function _open($path, $name) {
if ($this->db_con == \"Y\") {
$this->db_connect();
}
return TRUE;
}
/* Close session */
function _close() {
/* This is used for a manual call of the
session gc function */
$this->_gc(0);
return TRUE;
}
/* Read session data from database */
function _read($ses_id) {
$session_sql = \"SELECT * FROM \" . $this->ses_table
. \" WHERE ses_id = '$ses_id'\";
if (!$session_res) {
return '';
}
if ($session_num > 0) {
$ses_data = $session_row['ses_value'];
return $ses_data;
} else {
return '';
}
}
/* Write new data to database */
function _write($ses_id, $data) {
$session_sql = \"UPDATE \" . $this->ses_table
. \" SET ses_time='\" . time()
. \"', ses_value='$data' WHERE ses_id='$ses_id'\";
if (!$session_res) {
return FALSE;
}
return TRUE;
}
$session_sql = \"INSERT INTO \" . $this->ses_table
. \" (ses_id, ses_time, ses_start, ses_value)\"
. \" VALUES ('$ses_id', '\" . time()
. \"', '\" . time() . \"', '$data')\";
if (!$session_res) {
return FALSE;
} else {
return TRUE;
}
}
/* Destroy session record in database */
function _destroy($ses_id) {
$session_sql = \"DELETE FROM \" . $this->ses_table
. \" WHERE ses_id = '$ses_id'\";
if (!$session_res) {
return FALSE;
} else {
return TRUE;
}
}
/* Garbage collection, deletes old sessions */
function _gc($life) {
$session_sql = \"DELETE FROM \" . $this->ses_table
. \" WHERE ses_time < $ses_life\";
if (!$session_res) {
return FALSE;
} else {
return TRUE;
}
}
}
?>
3. Dostosować skrypt logowania/// index.php ///
<? require \"session.php\"; ?>
<html>
<head>
<title>Administracja</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-2\">
<link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\">
</head>
<body leftmargin=\"0\" topmargin=\"0\">
<table>
<tr>
<td>
<table>
<tr>
<td>
<table>
<tr>
<td><br><?php require ('menu.php');?><br><?php require ('logout.php');?></td>
<td></td>
</tr>
</table>
</td>
<td>
<br>
<?php
if (isset($_GET['pg'])) { $strona = $_GET['pg'] . '.php';
require($strona);
}
else require('main.php');
?>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
/// main.php ///
<?php
require \"config.php\";
$query2 = \"SELECT * FROM adm WHERE nick='$nick' AND pass='$pass2'\";
// wymagane jeśli chcesz żeby wszystko działało poprawnie i zapisywalo wartości zm
ennych sesyjnych
$pass=$row['pass'];
$ban=$row['ban'];
}
//
function auth_user($nick, $pass, $ban) {
$query = \"SELECT * FROM adm WHERE nick='$nick' AND pass='$pass'\";
else {
return $query_data[0];
}
}
function login_form() {
?>
<CENTER>
<FORM ACTION=\"index.php\" METHOD=\"post\">
<table>
<tr>
<td align=\"center\">
<table width=\"250\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
<tr>
<td width=\"125\">Użytkownik:</td>
<td width=\"125\"><INPUT TYPE=\"text\" NAME=\"nick\" SIZE=\"10\"></td>
</tr>
<tr>
<td>Hasło:</td>
<td><INPUT TYPE=\"password\" NAME=\"haslo\" SIZE=\"10\" class=\"pole\"></td>
</tr>
<tr>
<td colspan=\"2\" align=\"center\"><br><INPUT TYPE=\"image\" src=\"img/enter.gif\" NAME=\"username\" VALUE=\"submit\">
<INPUT TYPE=\"image\" src=\"img/cancel.gif\" VALUE=\"reset\"></td>
</tr>
</table>
</td>
</tr>
</table>
</FORM>
</CENTER>
<?php
}
if(!isset($_POST['nick']) AND
!isset($_POST['pass'])) { login_form();
}
else {
$username = auth_user($nick, $pass, $ban);
if(!$username) {
echo \"<CENTER>AUTORYZACJA NIEUDANA</CENTER>\"; } else
echo \"<CENTER>$nick WITAJ, W PANELU ADMINISTRACYJNYM<br>NACIŚNIJ F5</CENTER>\";
}
?>
No i to wszystko i działa jak należy

wystarszy tylko sobie zrobić plik menu.php gdzie będziesz trzymał linki (nie wymaga require "session.php"; tak samo jak logout.php) plikach które będziesz wywoływał wystarszy tylko podać:
<?php
if (!isset($_SESSION['nick']) AND
!isset($_SESSION['pass']) OR
$_SESSION['ban'] == 1
) { echo \"<p align=center class=naglowek>Nie jesteś zalogowany bądź nie masz uprawnień do tej strony</p>\"; }
?>
no chyba że będziesz coś wywoływał w popup to w tedy przed kodem powyższym wpisujesz
<?php
require \"session.php\";
?>
I ma działać

Ja tak mam i u mnie trybi. A dlaczego sesjia w mysql

Przyczyna jest prosta obecny server który posiadam nie ma włączone session.auto_start także jest problem z przekazaniem sesji do pliku a tak trzymam sobie ALL w bazie danych