такой код:
<?php
session_start();
if(!isset($_POST['enter']))
{
?>
<form method='post' action=''>
Авторизация<BR>
Имя:<input type='text' name='name' value=''><BR>
пароль:<input type='password' name='pass'><BR>
<input name='enter' type='submit' value='Войти'>
<?php
}
else
{
if ($_POST['name']!='' and $_POST['pass']!='')
{
$safe_name=mysql_escape_string($_POST['name']);
$safe_name=mysql_escape_string($_POST['pass']);
$safe_pass=md5($safe_pass);
require_once('connect.php');
$sql="SELECT name,pass FROM USERS WHERE
name='".$safe_name."' and pass='".$safe_pass."'";
$result=mysql_query($sql);
if (mysql_num_rows($result))
die ("Неверный Логин или Пароль <a href='index.php'> назад </a>");
else
{
$line=mysql_fetch_row($result);
$_SESSION['autorized']=true;
$_SESSION['name']=$_POST['name'];
$_SESSION['role']=$line[2];
echo "авторизация прошла успешно! <br><a href=index.php> вернуться</a>";
}
}
else
{
die("хрень какая-то <a href='index.php'>назад</a>");
}
}
?>
взято из книжки "PHP-Это просто"
получается что если введены ну хоть какие-нить данные, то авторизация проходит успешно, и только если поля совсем пустые тогда ругается.
Подскажите где поправить?
15 апреля 2009 в 20:00
сохранить куки не думали сделать???
29 мая 2008 в 12:00
ипать…
ажно трЫ раза равно нулю
но теперь все работает
Спасибо Большое!
29 мая 2008 в 11:03
Прохор, смари че у тебя написано
$safe_name=mysql_escape_string($_POST['name']);
$safe_name=mysql_escape_string($_POST['pass']);
а надо то
$safe_name=mysql_escape_string($_POST['name']);
$safe_pass=mysql_escape_string($_POST['pass']);
=)
29 мая 2008 в 11:03
кроме того, обрати внимание, что в таблице USERS должны быть записаны какие-нить name и pass (pass в виде md5-хеша), чтобы можно было авторизоваться!
29 мая 2008 в 11:03
<?php
session_start();
if(!isset($_POST['enter']))
{
?>
<form method='post' action=''>
Авторизация<BR>
Имя:<input type='text' name='name' value=''><BR>
пароль:<input type='password' name='pass'><BR>
<input name='enter' type='submit' value='Войти'>
<?php
}
else
{
if ($_POST['name']!='' and $_POST['pass']!='')
{
$safe_name=mysql_escape_string($_POST['name']);
$safe_pass=mysql_escape_string($_POST['pass']);
$safe_pass=md5($safe_pass);
require_once('connect.php');
$sql="SELECT name,pass FROM USERS WHERE
name='".$safe_name."' and pass='".$safe_pass."'";
$result=mysql_query($sql);
if (mysql_num_rows($result)===0)
die ("Неверный Логин или Пароль <a href='index.php'> назад </a>");
else
{
$line=mysql_fetch_row($result);
$_SESSION['autorized']=true;
$_SESSION['name']=$_POST['name'];
$_SESSION['role']=$line[2];
echo "авторизация прошла успешно! <br><a href=index.php> вернуться</a>";
}
}
else
{
die("хрень какая-то <a href='index.php'>назад</a>");
}
}
?>
28 мая 2008 в 21:04
похоже что условия и в самом деле не хватает.
либо полное соглашательство с любым логином,
либо полное отрицалово.
блин…
28 мая 2008 в 19:03
if (mysql_num_rows($result))
а мне кажется что if(mysql_num_rows($result) >=1) { авторизация пройдена }
то бишь в num_rows не хватает условия что ли….имхо
28 мая 2008 в 18:00
мне кажецца что вместо
if (mysql_num_rows($result))
надо отрицание
if (!mysql_num_rows($result))
ну а в USERS должны быть данные какие-то, чтобы под ними можно было авторизоваться