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

Форум PHP

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

 

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

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

тема: Не осуществляется авторизация - в чем ошибка?
 
 автор: sdnk   (15.09.2009 в 10:05)   письмо автору
 
 

Сразу Спасибо за книгу "PHP практика создания web-сайтов 2-е издание".
до этого с php сталкивался не часто, поэтому немного сложновато осваивать, наверное надо начать с самоучителя...
А вопрос вот в чём: нужно отображение пользовательской информации в top.php при регистрации или входе на сайт, всегда выдаёт "Привет гость! Пожалуйста пройди регистрацию!" в чём моя ошибка??
if($_SESSION['id_user'])  
{$query = "SELECT name,school,klass,dateregister FROM $tbl_users WHERE id_position = ".$_SESSION["id_user"]."";
           $ar = mysql_query($query);
           $usr = mysql_fetch_array($ar);
           echo "Привет ".$usr['name']."<br>";
           echo "Школа ".$usr['school']."<br>";
           echo "Класс ".$usr['klass']."<br>";
           echo "Дата регистрации ".$usr['dateregister']."<br>";}
else{echo "Привет гость! Пожалуйста пройди регистрацию!";}

запрос к базе вроде правильный может не через сессию??

  Ответить  
 
 автор: mihdan   (15.09.2009 в 10:12)   письмо автору
 
   для: sdnk   (15.09.2009 в 10:05)
 

Не вижу session_start();

  Ответить  
 
 автор: sdnk   (15.09.2009 в 11:10)   письмо автору
 
   для: mihdan   (15.09.2009 в 10:12)
 

session_start(); есть выше просто не указал

  Ответить  
 
 автор: MikeSVB   (15.09.2009 в 10:13)   письмо автору
 
   для: sdnk   (15.09.2009 в 10:05)
 

так судя по всему сессии нет и авторизацию надо пройти.
ищите где вы потеряли $_SESSION['id_user'] или где в него идёт запись

  Ответить  
 
 автор: sdnk   (15.09.2009 в 11:12)   письмо автору
 
   для: MikeSVB   (15.09.2009 в 10:13)
 

// Вход на сайт
        $_SESSION['name'] = $form->fields['name']->value;
        $_SESSION['id_user'] = mysql_insert_id();
        // Осуществляем редирект на страницу, сообщающую
        // об успешной регистрации
        header("Location: register_success.php");
        exit();
      }
    }

    // Подключаем верхний шаблон
    $pagename = "Регистрация на сайте";
    $keywords = "Регистрация на сайте";
    require_once ("templates/top.php");

это из register.php здесь полагаю и идёт запись, а вот сюда templates/top.php и должна выводиться информация

  Ответить  
 
 автор: cheops   (15.09.2009 в 12:50)   письмо автору
 
   для: sdnk   (15.09.2009 в 11:12)
 

Самый простой способ посмотреть, что находится в массиве, это пропустить его через функцию print_r()
<?php
  
echo "<pre>";
  
print_r($_SESSION);
  echo 
"</pre>";
?>

Последовательно проверяйте на каждой странице, есть в массиве id_use и чему он равен и где происходит сбой. Бывает так, что пользователь зарегистрировался на www.site.ru, а потом его перебрасывает на site.ru (без www) - это разные домены и cookie (а номер сессии передается через них) одного домена не совместимы с другим (если явно не указать, чтобы они были совместимы).

  Ответить  
 
 автор: sdnk   (17.09.2009 в 11:20)   письмо автору
 
   для: cheops   (15.09.2009 в 12:50)
 

Сапасибо большое лично Вам и всем кто откликнулся.
Проблема решена, просто по недосмотру вместо id_user_position было id_user, print_r помогла.
Ещё раз спасибо!

  Ответить  
Rambler's Top100
вверх

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