[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с сессиями
Gate007
Есть 2 скрипта:
login.php:
<?
mysql_connect(localhost,doctor) OR DIE("Не могу создать соединение ");
mysql_select_db('doctor');
session_start();
if ($_SESSION['user_id'][0]==1)
{
Header("Location: /admin.php");
exit;
}
echo '
<html>
<body>
<form action="/login.php" method="POST">
логин: <input type = text name=user_name> пароль: <input type = password name=user_pass> <br>
<input type = submit name=add value="Войти в систему"><br>
</form>'
;
if (!empty($_POST['add']))
{
$query = sprintf("SELECT pass FROM user where name LIKE ('%s')",
mysql_real_escape_string($_POST['user_name']));
$result=mysql_fetch_row(mysql_query($query));
if ((!empty($result)) AND ($_POST['user_pass']==$result[0]))
{
echo 'Готово! Сейчас вы будете перемещены';
$query = sprintf("SELECT id FROM user where name LIKE ('%s')",
mysql_real_escape_string($_POST['user_name']));
$result=mysql_fetch_row(mysql_query($query));
$_SESSION['user_id'] = $result;
}
else
{
echo 'Неверные данные для доступа!';
}
}

echo '<br>';
echo "
</body>
</html>"
;
?>


В нем по моей задумке $_SESSION['user_id'][0] одлжен присвиваться айди пользователя, который в свою очередь берется из БД.

Второй скрипт-сама админка:
<?
mysql_connect(localhost,doctor) OR DIE("Не могу создать соединение ");
mysql_select_db('doctor');
var_dump ($_SESSION);
if (!empty($_SESSION['user_id'][0]))
{
echo '
<html>
<body>
<form action="/admin.php" method="POST">
логин: <input type = text name=user_name>
<br>пароль: <input type = password name=user_pass><br>
<br>Название больницы: <input type = text name=hospit_name>
<input type = submit name=add value="Добавить юзера"><br>
</form>'
;
if (!empty($_POST['add']))
{
if ((!empty($_POST['user_name'])) AND (!empty($_POST['user_pass'])) AND (!empty($_POST['hospit_name'])))
{
$query = sprintf("INSERT INTO user (name,pass) VALUES ('%s','%s')",
mysql_real_escape_string($_POST['user_name']),
mysql_real_escape_string($_POST['user_pass']));
mysql_query($query);
$query = sprintf("INSERT INTO menu (name) VALUES ('%s')",
mysql_real_escape_string($_POST['hospit_name']));
mysql_query($query);
header('Status:200');
header('Refresh:2; URL='. $_SERVER['PHP_SELF'] .'?rnd='. time());
echo 'Пользователь успешно добавлен!';
exit();
}
else {echo 'No data!';}
}


echo '</body>
</html>'
;
}

else {
echo 'У вас нет прав на просмотр данной страницы!';
exit;
}
?>

Вот здесь вся загвоздка в том, что постоянно выдает У вас нет прав на просмотр данной страницы! . Хотя вроде как должен бы взять переменную из сессии.
Почему не работает?



Спустя 20 минут, 14 секунд (12.11.2009 - 18:56) Gabriel написал(а):
Gate007
session_start();
во втором скрипте не наблюдаеться

Спустя 8 минут, 45 секунд (12.11.2009 - 19:05) Gate007 написал(а):
Да, но... эммм верно smile.gif
Т.е session_start(); просто делает доступным в пределах данного скрипта массив $_SESSION?
Насколько мне думалось, что если сделать session_start() в скрипте, то для пользователя открывается новая сессия независимо от старой. Я так пониаю, ошибался?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.