Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка авторизации, Глюк или ошибка кода? 
:(
    Опции темы
Somebody32
Дата 10.9.2006, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Overclocker
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Здравствуйте. У меня следующая проблема: 
Есть 2 файла: index.php и login.php. Оба имеют формы авторизации, но весь процесс проходит во втором файле. При попытке авторизации с главной страницы скрипт отрабатывает, но ссессию не открывает, при этом ошибок не выдает. Но если же авторизовываться со второго файла (login.php), то сессия открывается, все работает, и даже после закрытия сессии с главной страницы можно логиниться. В чем может быть проблема?

Главная:
Код

<?php
@session_start();
if (!isset ($user)){
$loged = 0;}
else
{$loged = 1;}
echo "<table border=1 >";
// authorisation block begin
 if($loged==0){
  echo "<tr >";
  echo "<td> <b>Меню пользователя</b><br> ";
  echo "<form action = login.php method = POST>";
  echo "Логин <div align='center'><input type='text' name='login' value=''></div>";
  echo "Пароль   <div align='center'><input type='password' name='pass' value=''><br>";
  echo "<input type='submit' value='Вход'></div>";
  echo "</form>";
  echo "<a href='register.php'><div align='center'>Регистрация</div></a> ";
  echo "</td>";
  // authorisation block ends
  } else {
  echo "<tr>";
  echo "<td><b>Меню пользователя</b><br><br> ";
  if(isset($_POST["exit"])){$_SESSION = array();
  session_destroy();};
  echo "<div align='center'>Приветствую,<br> <b>".$user['login']."</b><br><br>";
echo "<form action = foto.php method = POST>";
  echo "<br><input type='submit' name='exit' value='Выход'><br></div>";
  echo "</form>";
  echo "</td>";}?>


Login.php
Код

<?php
include("config.php");
if(!isset($_POST['login']) || !isset($_POST['pass'])){
    echo" <html>
<head>
  <title>Фото Online : Вход</title>
</head>
<body>";

echo"Введите логин и пароль:";
    echo"<form action=login.php method=POST>";
    echo"<input type=text value='' name='login'><br>";
    echo"<input type=password name='pass' value=''><br>";
    echo"<input value='OK' type = submit>";
    echo"</form>";}
    
    else {
$link = mysql_connect("$DBHOST", "$DBUSER", "$DBPASS")
        or die("Could not connect : " . mysql_error());
        mysql_select_db("$DBNAME") or die("Could not select database");

if (strlen($_POST['login'])==0 || strlen($_POST['pass'])==0){
header("Location: login.php");
die('Ошибка в логине или пароле');

}else {
  $user_result = mysql_query("SELECT * FROM users WHERE
    login='".mysql_escape_string($_POST['login'])."' AND pass='".mysql_escape_string($_POST['pass'])."'");

  if (mysql_error()){
  header("Location: login.php");
    die(mysql_error());

}  elseif (@mysql_num_rows($user_result) != 1){
header("Location: login.php");
die('Ошибка в логине или пароле');
      }else {
    $user = mysql_fetch_assoc($user_result);
setcookie( "name" , $user -> login , time() + 900 , "/" );
   //session_set_cookie_params(1800, "/");
   @session_start();

   session_register("user");
   
   if (!isset ($user)){
   header("Location: login.php");
      }else{
      header("Location: foto.php");
       exit();}
    };
  };

    mysql_close($link);}
?>


PM MAIL ICQ   Вверх
vasac
Дата 10.9.2006, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



Цитата(Somebody32 @  10.9.2006,  20:15 Найти цитируемый пост)
при этом ошибок не выдает.

Конечно не выдает — везде перед session_start() собака поставлена. Убери ее и посмотри, что он скажет.
PM WWW   Вверх
Somebody32
Дата 10.9.2006, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Overclocker
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



убрал, итог:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at z:\home\localhost\www\foto\foto.php:2) in z:\home\localhost\www\foto\quest.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at z:\home\localhost\www\foto\foto.php:2) in z:\home\localhost\www\foto\quest.php on line 2

Добавлено @ 22:03 
После логина(login.php) остается лишь 1:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at z:\home\localhost\www\foto\foto.php:2) in z:\home\localhost\www\foto\quest.php on line 2

и авторизация с главной становится возможной, значит ли это что проблема тут :
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at z:\home\localhost\www\foto\foto.php:2) in z:\home\localhost\www\foto\quest.php on line 2?


PM MAIL ICQ   Вверх
-=Ustas=-
Дата 11.9.2006, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Цитата(Somebody32 @  10.9.2006,  22:00 Найти цитируемый пост)
Cannot send session cookie - headers already sent by 


Тут тебе все по-русски написано. Либо в самом начале скрипта стартуй, либо ob_start()


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Somebody32
Дата 11.9.2006, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Overclocker
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



-=Ustas=-, так ведь на главной session_start и так первой строкой идет.
PM MAIL ICQ   Вверх
AztEK
Дата 11.9.2006, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: 6
Всего: 18



Сделай самой первой строкой:
Код

ini_set('display_errors', true);
error_reporting(E_ALL);

и скажи что выводит


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Somebody32
Дата 11.9.2006, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Overclocker
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Все тоже,  ничего не изменилось.

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at z:\home\localhost\www\foto\foto.php:2) in z:\home\localhost\www\foto\quest.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at z:\home\localhost\www\foto\foto.php:2) in z:\home\localhost\www\foto\quest.php on line 2

PM MAIL ICQ   Вверх
Somebody32
Дата 16.9.2006, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Overclocker
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Кто нибудь знает в чем может быть проблема? Я как только ни колдовал - ничего не получается. Очень нужно.
PM MAIL ICQ   Вверх
ewolf
Дата 16.9.2006, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 8
Всего: 18



А что находится в файле z:\home\localhost\www\foto\foto.php?

Кстати, лучше используй $_SESSION, а не  session_register или непосредственное обращение к переменной

Это сообщение отредактировал(а) ewolf - 16.9.2006, 19:44
PM MAIL ICQ   Вверх
Somebody32
Дата 16.9.2006, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Overclocker
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



ewolf, это и есть главная страница. Вот как раз с нее логиниться и не получается.
PM MAIL ICQ   Вверх
ewolf
Дата 16.9.2006, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 8
Всего: 18



Ты уверен, что <?php начинается имеено с самого начала файла и перед ним нет пустых строк или случайных пробелов/символов?
PM MAIL ICQ   Вверх
Somebody32
Дата 16.9.2006, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Overclocker
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Блин, до чего же я невнимателен! На главной копирайт первой строкой в комментах был записан. Спасибо всем.
PM MAIL ICQ   Вверх
Kefir
Дата 16.9.2006, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



Somebody32, что находится в файле foto.php и какое отношение он имеет к index.php?

Добавлено @ 20:45 
ок. ладно
PM MAIL WWW Skype   Вверх
Somebody32
Дата 16.9.2006, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Overclocker
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Рано я радовался.
Я убрал строку. Авторизация в ие проходит на ура, опера - глючит!  Она просто не регистрирует в сессии, т.е выполняется этот кусок кода:
Код

if (!isset ($user)){
   header("Location: login.php");


Я начинаю тихо ненавидеть эту красную букву "О" =)
PM MAIL ICQ   Вверх
Somebody32
Дата 16.9.2006, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Overclocker
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



могу продолжать радоваться, это был глюк денвера. Все работает, всем спасибо.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0814 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.