|
|
|
| всегда кидает на страницу noaccess.php =(:
<?php
session_start();
if (empty($_POST['login']) || empty($_POST['password']))
{
header("Location: noaccess.php");
exit;
}
else
{
$login=($_POST['login']);
$login=substr($login, 0, 20);
$login=htmlspecialchars($login);
$password=($_POST['password']);
$password=substr($password, 0, 20);
$password=htmlspecialchars($password);
$login = mysql_real_escape_string($login);
$password = mysql_real_escape_string($password);
include ("configuration.php");
mysql_connect($hostname, $username, $password) or die ("Error!");
mysql_select_db($database) or die("Error!");
$query = "SELECT password FROM users WHERE login='$login'";
$result = mysql_query($query);
$frombase = mysql_result($result,0,"password");
if($_POST['submit'])
{
if($frombase==$password)
{
$logged_user = $login;
$_SESSION['logged_user']='logged_user';
header("Location: access.php");
}
elseif($passfrombase!==$password)
{
header("Location: noaccess.php");
}
exit;
}
else
{
header("Location: noaccess.php");
}
exit;
}
?>
|
| |
|
|
|
|
|
|
|
для: amitiresome
(18.06.2005 в 18:56)
| | Что значит строка
здесь наверное следует написать
if(isset($_POST['submit']))
|
или
if(empty($_POST['submit']))
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(18.06.2005 в 19:03)
| | все равно не работает, я даже убрал вообще эту проверку на приход через форму, все равно не работает | |
|
|
|
|
|
|
|
для: amitiresome
(18.06.2005 в 19:20)
| | А данные из формы отсылаются методом POST? Выложите код формы. | |
|
|
|
|
|
|
|
для: Евгений Петров
(18.06.2005 в 19:25)
| | да, метод post:
<form name="logon" method="post" action="authorize.php">
<TABLE cellSpacing=0 cellPadding=0 width=207 border=0>
<TR>
<TD align=right width=70 height=20>ЛОГИН: </TD>
<TD align=left width=137 height=20>
<input name="login" type="text" size="15">
</TD>
</TR>
<TR>
<TD align=right width=70 height=20">ПАРОЛЬ: </TD>
<TD align=left width=137 height=20>
<input name="password" type="password" size="15">
</TR>
<TR>
<TD align=right width=70 height=20></TD>
<TD align=left width=137 height=20>
<input type=submit name=submit value="войти">
</TR>
</TABLE>
</form>
|
| |
|
|
|
|
|
|
|
для: amitiresome
(18.06.2005 в 19:34)
| | И все таки я не пойму зачем нужна строка
что она делает? | |
|
|
|
|
|
|
|
для: Евгений Петров
(18.06.2005 в 20:46)
| | Совет тебе замени все строки
header("Location: noaccess.php");
|
на что то типа
причем везде ставь разные номера строк и тогда ты узнаешь в какой из строк ошибка. | |
|
|
|
|
|
|
|
для: Евгений Петров
(18.06.2005 в 20:46)
| | И все таки я не пойму зачем нужна строка
что она делает?
для того чтоб форма не субмитилась при загрузке страницы,
или при её обновлении.... | |
|
|
|
|
|
|
|
для: method
(19.06.2005 в 19:04)
| | > для того чтоб форма не субмитилась при загрузке страницы,
>или при её обновлении....
Да, осуществляется проверка, переданы ли скрипту POST-данные и если это так, включается обработчик, если данных нет - отображается только HTML-форма. | |
|
|
|
|
|
|
|
для: amitiresome
(18.06.2005 в 18:56)
| |
elseif($passfrombase!==$password)
{
header("Location: noaccess.php");
}
|
Откуда переменная $passfrombase??? Проще заменить это на:
else
{
header("Location: noaccess.php");
}
|
| |
|
|
|
|
|
|
|
для: isset
(18.06.2005 в 21:05)
| | 1)В php нет оператора !==
Есть только !=
Поэтому выражение $passfrombase!==$password никогда не вернет true
2)Попробуй заменить if($_POST['submit']) на if($submit) | |
|
|
|
|
|
|
|
для: FlashG
(19.06.2005 в 19:37)
| | 1) На самом деле такой оператор имеется, он отличается более строгим синтаксисом, для == true даёт равенство вида 0 == "", а для === - это даёт уже false и обращается в true, только если 0 === 0 и "" === "", для !== аналогично, только наоборот. | |
|
|
|
|
|
|
|
для: cheops
(19.06.2005 в 21:32)
| | Спасибо, буду знать | |
|
|
|