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

Форум PHP

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

 

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

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

тема: Fatal error: Call to undefined function
 
 автор: krollik   (19.12.2005 в 12:30)   письмо автору
 
 

Вот делал авторизацию для новостной ленты и почемуто она работать не хочет :(
Короче делал я так enter.php (код ниже) выдаёт пользователю форму для авторизации, а handler.php её принимает, вот только на 4 строчке второго скрипта всегда ошибка, а если проверку на отправку данных с другого хоста убрать, то всегда пароль не верный.... Хотя уже точно и в базе и вводимый верный =) Помогите, а?

//////////////////////////////////////////////////////////// //////////////////////////////////////// 
// enter.php 
/ //////////////////////////////////////////////////////////// //////////////////////////////////////// 
<?php 
session_start
(); 
?> 
<html> 
<head> 
<title> Вход в панель администратора </title> 
</head> 
<body> 
<CENTER> 
<H2>.:: Заполните данные поля ::. </H2> 
<br> 
<FORM METHOD=POST ACTION="admin/handler.php"> 
Имя: <INPUT TYPE="text" NAME=name> 
<br> 
Пароль: <INPUT TYPE="PASSWORD" NAME=pass> 
<br> 
<INPUT TYPE="hidden" NAME="session_id" VALUE=<?php echo session_id(); ?>
<INPUT TYPE="submit" VALUE=Войти> 
</FORM> 
</CENTER> 
</body> 
</html>


///////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////// 
// hadnler.php 
///////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////// 
<?php 
include "data_all.php"
$conn mysql_connection(); 
if (
$_POST('session_id') != session_id()) { 
   exit(
"Попытка передачи данны с другого хоста. Скрипт остановлен..."); 

$query"SELECT pass=MD5('$_POST[pass]') FROM users WHERE name='$_POST[name]'"
$nme mysql_query($query); 
if (!
$nme) { 
   exit (
"ошибка выполнения запроса"); 

If (
mysql_num_rows($nme)>0){ 
   if(
session_start()) { 
    
$_SESSION['user'] = $_POST['name']; 
    
$_SESSION['pass'] = $_POST['pass']; 
    
header("location: index.php"); 
   } else { 
    exit (
"неверный пароль"); 
   } 
} else { 
    exit (
"неверный логин"); 

?>

Вот кажиться и всё.... Жду ответа

   
 
 автор: krollik   (19.12.2005 в 13:22)   письмо автору
 
   для: krollik   (19.12.2005 в 12:30)
 

Так 1 ошибка отпала.... =)
Осталось вторая, вот что мне пишет денвер:

Notice: Array to string conversion in z:\home\news\www\admin\handler.php on line 4
[Денвер: показать возможную причину ошибки]
Fatal error: Call to undefined function: array() in z:\home\news\www\admin\handler.php on line 4

   
 
 автор: Shorr Kan   (19.12.2005 в 13:26)   письмо автору
 
   для: krollik   (19.12.2005 в 13:22)
 

Предлагаю заменить
<?if ($_POST('session_id') != session_id()) { ?>
на
<?if ($_POST['session_id'] != session_id()) { ?>

Есть шанс, что поможет.

   
 
 автор: krollik   (19.12.2005 в 14:10)   письмо автору
 
   для: Shorr Kan   (19.12.2005 в 13:26)
 

сча попробую

   
 
 автор: krollik   (19.12.2005 в 14:13)   письмо автору
 
   для: krollik   (19.12.2005 в 14:10)
 

Us теперь постоянно вылетает, что Попытка передачи данны с другого хоста. Скрипт остановлен...

   
 
 автор: Shorr Kan   (19.12.2005 в 15:09)   письмо автору
 
   для: krollik   (19.12.2005 в 14:13)
 

Если я не ошибаюсь, то на handler.php - session_start(); тоже нужен. В самом начале.

   
 
 автор: krollik   (19.12.2005 в 15:22)   письмо автору
 
   для: Shorr Kan   (19.12.2005 в 15:09)
 

В таком случае выкидывает

Notice: A session had already been started - ignoring session_start() in z:\home\news\www\admin\handler.php on line 14
[Денвер: показать возможную причину ошибки]
Warning: Cannot modify header information - headers already sent by (output started at z:\home\news\www\admin\handler.php:14) in z:\home\news\www\admin\handler.php on line 17

   
 
 автор: Shorr Kan   (19.12.2005 в 15:33)   письмо автору
 
   для: krollik   (19.12.2005 в 15:22)
 

Но эту строку... с сессией - надо выше любого вывода в браузер, даже пробелов.

   
 
 автор: cheops   (19.12.2005 в 15:50)   письмо автору
 
   для: krollik   (19.12.2005 в 15:22)
 

notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE

Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
?>

В качестве параметра, которой передать соответствующий уровень обработки ошибок.

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4985

   
 
 автор: Shorr Kan   (19.12.2005 в 15:59)   письмо автору
 
   для: cheops   (19.12.2005 в 15:50)
 

А еще можно собачку поставить перед session_start ... Только, задача введь не в подавлении ошибки, а в работе с сессией, для авторизации... Если я правильно понял.

   
 
 автор: krollik   (19.12.2005 в 16:01)   письмо автору
 
   для: Shorr Kan   (19.12.2005 в 15:59)
 

Notice я просто так скапировал, меня больше интересует вторая ошибка, и вопрос почему меня постоянно определяют как с друго хоста?

   
 
 автор: Shorr Kan   (19.12.2005 в 16:13)   письмо автору
 
   для: krollik   (19.12.2005 в 16:01)
 

А по какому признаку вы это видите? Ошибка какого-то яваскрипта?

   
 
 автор: isset   (19.12.2005 в 16:26)   письмо автору
 
   для: cheops   (19.12.2005 в 15:50)
 

Кто вам сказал что нотис это не ошибка?) Это тоже ошибка и ошибка которую надо обязательно исправить, игнорируя их можно получить неправильную работу системы или несколько уязвимостей.

   
 
 автор: krollik   (19.12.2005 в 16:36)   письмо автору
 
   для: isset   (19.12.2005 в 16:26)
 

1. Вопрос снят... Проблема уже отпала...
2. Isset - далеко не всегда это ошибка приводит к неправильной работе сервера.

   
Rambler's Top100
вверх

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