victorianec
26.02.2007, 13:24
Я написал маленький скрипт авторизации. Работает нормально при авторизации входит. Но есть проблема одна когда я перехожу по страницам то меня выкидывает из авторизации и приходится заново авторизоваться. Вот код моего скрипта:
login_form.php:
<? session_start(); ini_set('session.auto_start',1);
include ("config.php");
if (isset($_POST['action']) AND $_POST['action'] == "submit") {
session_register('login');
session_register('passw');
$_SESSION['login'] = $_POST['login']; $_SESSION['passw'] = $_POST['passw']; $_POST['login'] = str_replace('~','',strip_tags(trim ($_POST['login'])));
$_POST['passw'] = str_replace('~','',strip_tags(trim ($_POST['passw'])));
if (!$_POST['login']) {
echo "<center><br>Пожалуйста введите логин</center><br>";
unset ($_POST['sent']); echo $sm; exit;}
if (!$_POST['passw']) { echo "<center><br>Пожалуйста введите пароль</center><br>"; unset ($_POST['sent']); echo $sm; exit;}
$sql="select login, pass, firstname, email from user where login = '$_POST[login]' and pass = '$_POST[passw]' limit 1"; $result=mysql_query($sql,$db_conn); $row=mysql_fetch_array($result);
if ($_POST['login']==$row[login] AND $_POST['passw']==$row[pass]){
$at_login = TRUE; }
else
{ echo "Такого пользователя/пароля в базе нет. Повторите авторизацию<br>"; echo $sm; } }
if ($at_login == TRUE){
echo <<<HTML
<div align=center>
<table width=80% border=0 cellspacing=0 cellpadding=0> <tr>
<th scope=col>Привет $_POST[login]</th> </tr> <tr> <td> </td>
</tr> <tr> <td>Рады Вас видеть</td> </tr> <tr> <td>$row[firstname]</td> </tr>
<tr> <td> </td> </tr>
<tr> <td><a href=?do=logout>Выйти</a></td> </tr>
</table> </div> HTML; }
else {
echo <<<HTML
<div align=center>
<table width=20% border=0 cellspacing=0 cellpadding=0>
<form action="" method=post>
<input name=action type=hidden value=submit /> <tr> <th colspan=2 scope=col>Войти</th> </tr> <tr> <td><strong>Логин:</strong></td> <td><input type=text name=login maxlength=20></td> </tr>
<tr> <td><strong>Пароль:</strong></td> <td>
<input type=password name=passw maxlength=25></td> </tr>
<tr> <td>
<input onclick=submit(); type=submit value=Войти> </td>
<td><input type=reset value=Очистить></td> </tr> </form>
</table></div>
HTML; } ?>
config.php:
$db_conn = mysql_connect("localhost", "root", "");
mysql_select_db("lesson", $db_conn);
Mysql:
-- -- Структура таблицы `user` --
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`login` varchar(15) NOT NULL,
`pass` varchar(10) NOT NULL,
`firstname` varchar(126) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=10 ;
---- Дамп данных таблицы `user`
Кто сможет помочь.
login_form.php:
<? session_start(); ini_set('session.auto_start',1);
include ("config.php");
if (isset($_POST['action']) AND $_POST['action'] == "submit") {
session_register('login');
session_register('passw');
$_SESSION['login'] = $_POST['login']; $_SESSION['passw'] = $_POST['passw']; $_POST['login'] = str_replace('~','',strip_tags(trim ($_POST['login'])));
$_POST['passw'] = str_replace('~','',strip_tags(trim ($_POST['passw'])));
if (!$_POST['login']) {
echo "<center><br>Пожалуйста введите логин</center><br>";
unset ($_POST['sent']); echo $sm; exit;}
if (!$_POST['passw']) { echo "<center><br>Пожалуйста введите пароль</center><br>"; unset ($_POST['sent']); echo $sm; exit;}
$sql="select login, pass, firstname, email from user where login = '$_POST[login]' and pass = '$_POST[passw]' limit 1"; $result=mysql_query($sql,$db_conn); $row=mysql_fetch_array($result);
if ($_POST['login']==$row[login] AND $_POST['passw']==$row[pass]){
$at_login = TRUE; }
else
{ echo "Такого пользователя/пароля в базе нет. Повторите авторизацию<br>"; echo $sm; } }
if ($at_login == TRUE){
echo <<<HTML
<div align=center>
<table width=80% border=0 cellspacing=0 cellpadding=0> <tr>
<th scope=col>Привет $_POST[login]</th> </tr> <tr> <td> </td>
</tr> <tr> <td>Рады Вас видеть</td> </tr> <tr> <td>$row[firstname]</td> </tr>
<tr> <td> </td> </tr>
<tr> <td><a href=?do=logout>Выйти</a></td> </tr>
</table> </div> HTML; }
else {
echo <<<HTML
<div align=center>
<table width=20% border=0 cellspacing=0 cellpadding=0>
<form action="" method=post>
<input name=action type=hidden value=submit /> <tr> <th colspan=2 scope=col>Войти</th> </tr> <tr> <td><strong>Логин:</strong></td> <td><input type=text name=login maxlength=20></td> </tr>
<tr> <td><strong>Пароль:</strong></td> <td>
<input type=password name=passw maxlength=25></td> </tr>
<tr> <td>
<input onclick=submit(); type=submit value=Войти> </td>
<td><input type=reset value=Очистить></td> </tr> </form>
</table></div>
HTML; } ?>
config.php:
$db_conn = mysql_connect("localhost", "root", "");
mysql_select_db("lesson", $db_conn);
Mysql:
-- -- Структура таблицы `user` --
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`login` varchar(15) NOT NULL,
`pass` varchar(10) NOT NULL,
`firstname` varchar(126) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=10 ;
---- Дамп данных таблицы `user`
Кто сможет помочь.