Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не работает скрипт авторизации, помогите
 
 автор: amitiresome   (18.06.2005 в 18:56)   письмо автору
 
 

всегда кидает на страницу noaccess.php =(:

<?php
session_start
();

if (empty(
$_POST['login']) || empty($_POST['password']))
{
header("Location: noaccess.php");
exit;
}
else
{
$login=($_POST['login']);
$login=substr($login020);
$login=htmlspecialchars($login);
$password=($_POST['password']);
$password=substr($password020);
$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;
}
?>

   
 
 автор: Евгений Петров   (18.06.2005 в 19:03)   письмо автору
 
   для: amitiresome   (18.06.2005 в 18:56)
 

Что значит строка

if($_POST['submit']) 

здесь наверное следует написать

if(isset($_POST['submit'])) 

или

if(empty($_POST['submit']))

   
 
 автор: amitiresome   (18.06.2005 в 19:20)   письмо автору
 
   для: Евгений Петров   (18.06.2005 в 19:03)
 

все равно не работает, я даже убрал вообще эту проверку на приход через форму, все равно не работает

   
 
 автор: Евгений Петров   (18.06.2005 в 19:25)   письмо автору
 
   для: amitiresome   (18.06.2005 в 19:20)
 

А данные из формы отсылаются методом POST? Выложите код формы.

   
 
 автор: amitiresome   (18.06.2005 в 19:34)   письмо автору
 
   для: Евгений Петров   (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>ЛОГИН:&nbsp;&nbsp;</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">ПАРОЛЬ:&nbsp;&nbsp;</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>

   
 
 автор: Евгений Петров   (18.06.2005 в 20:46)   письмо автору
 
   для: amitiresome   (18.06.2005 в 19:34)
 

И все таки я не пойму зачем нужна строка

if($_POST['submit'])

что она делает?

   
 
 автор: Евгений Петров   (18.06.2005 в 20:58)   письмо автору
 
   для: Евгений Петров   (18.06.2005 в 20:46)
 

Совет тебе замени все строки

header("Location: noaccess.php"); 

на что то типа

echo "Строка номер ***";

причем везде ставь разные номера строк и тогда ты узнаешь в какой из строк ошибка.

   
 
 автор: method   (19.06.2005 в 19:04)   письмо автору
 
   для: Евгений Петров   (18.06.2005 в 20:46)
 

И все таки я не пойму зачем нужна строка


if($_POST['submit'])



что она делает?


для того чтоб форма не субмитилась при загрузке страницы,
или при её обновлении....

   
 
 автор: cheops   (19.06.2005 в 21:29)   письмо автору
 
   для: method   (19.06.2005 в 19:04)
 

> для того чтоб форма не субмитилась при загрузке страницы,
>или при её обновлении....
Да, осуществляется проверка, переданы ли скрипту POST-данные и если это так, включается обработчик, если данных нет - отображается только HTML-форма.

   
 
 автор: isset   (18.06.2005 в 21:05)   письмо автору
 
   для: amitiresome   (18.06.2005 в 18:56)
 


 elseif($passfrombase!==$password)
  {
  header("Location: noaccess.php");
  } 

Откуда переменная $passfrombase??? Проще заменить это на:

 else
  {
  header("Location: noaccess.php");
  } 

   
 
 автор: FlashG   (19.06.2005 в 19:37)   письмо автору
 
   для: isset   (18.06.2005 в 21:05)
 

1)В php нет оператора !==
Есть только !=
Поэтому выражение $passfrombase!==$password никогда не вернет true
2)Попробуй заменить if($_POST['submit']) на if($submit)

   
 
 автор: cheops   (19.06.2005 в 21:32)   письмо автору
 
   для: FlashG   (19.06.2005 в 19:37)
 

1) На самом деле такой оператор имеется, он отличается более строгим синтаксисом, для == true даёт равенство вида 0 == "", а для === - это даёт уже false и обращается в true, только если 0 === 0 и "" === "", для !== аналогично, только наоборот.

   
 
 автор: FlashG   (19.06.2005 в 22:09)   письмо автору
 
   для: cheops   (19.06.2005 в 21:32)
 

Спасибо, буду знать

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования