Пытаюсь написать процедуру, которая вставляет в нужное мне место форму для ввода логина и пароля (если пользоватль еще не авторизирован) или какую-то информацию уже авторизованному пользователю (типа "Здравствуйте, ИВАНОВ ИВАН ИВАНОВИЧ").
Делаю это следующим образом:
/* ****************************************************************************** */
function _LoginMenu() /* если еще не авторизирован */
{
echo "
<table border=0>
<tr><td align=center>
<form method='POST'>
<table border=1>
<tr>
<td>Логин:</td>
<td><input type='text' name='login' size='15'></td>
</tr>
<tr>
<td>Пароль:</td>
<td><input type='password' name='pass' size='15'></td>
</tr>
<tr>
<td align=right colspan=2><input type='submit' name='ok' value='Вход'></td>
</tr>
</table>
</form>
</td></tr>
</table>";
}
/* ****************************************************************************** */
function _LoginedMenu() /* если уже авторизирован */
{
$user_login = $_SESSION['login'];
echo "
<table border=0>
<tr><td align=center>
Добрый день, $user_login
</td></tr>
</table>";
}
/* ****************************************************************************** */
function PrintLoginPanel()
{
//echo "!!!-" . $_SESSION['user_id'] . "-!!!";
if (isset($_SESSION['user_id']))
{
_LoginedMenu();
}
elseif(isset($_POST['ok']))
{
$db = mysql_connect('localhost', 'root', '');
mysql_select_db('Nurlan', $db);
//проверяем есть ли пользователь с таким login'ом и password'ом
$login = mysql_real_escape_string($_POST['login']);
$pass = mysql_real_escape_string($_POST['pass']);
$query = "SELECT * FROM users WHERE login='$login' AND password='$pass'";
$res = mysql_query($query) or trigger_error(mysql_error().$query);
if ($row = mysql_fetch_assoc($res))
{
session_start();
$_SESSION['user_id'] = $row['id'];
$_SESSION['login'] = $row['login']; //устанавливаем login & pass
$_SESSION['pass'] = $row['password'];
_LoginedMenu();
}
else
{
echo "Введены не верные логин или пароль ";
_LoginMenu();
}
mysql_close();
}
else
{
_LoginMenu();
}
}
Затем в конкретном файле (напирмер index.php) делаю вызов (это весь код, содержащийся в данном файле):
<?php
if (isset($_REQUEST[session_name()])) session_start();
include "php_funcs.php";
PrintMainStruct("index_content.php");
?>
где внутри функции "PrintMainStruct()" вызывается "PrintLoginPanel()".
Теперь, при вводе верного логина и пароля и нажатии ОК, выводится сообщение уже авторизованного пользователя. А после обновления страницы снова получаю неавторизованного пользователя. Где я ошибся?
_____________
Чем меньше мы начинаем думать, тем больше у нас появляется единомышленников.