<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру 2.0

PHP и MySQL с Нуля до Гуру 2.0

Данный курс научит Вас программировать на самом популярном Web-языке в мире - PHP. Курс состоит из 11 разделов, в которых с нуля рассказывается и показывается процесс написания различных скриптов на PHP.

В курсе Вы узнаете всю необходимую теоретическую часть, а также увидите массу практических примеров, в том числе, и из моей практики.

Почти к каждому уроку идут упражнения.

Просмотрев данный курс, Вы сможете создавать абсолютно любые PHP-сайты любой сложности.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Регистрация и авторизации пользователя на сайте.
02.04.2015 10:04:31 Регистрация и авторизации пользователя на сайте. Сообщение #1
shokin

shokin

Новичок

Новичок

Дата регистрации:
27.03.2015 08:45:53

Сообщений: 4

Добрый день.
Изучаю видеокурс по основам PHP.
урок 7: Возможность реализации регистрации и авторизации пользователя на сайте.
Все работает, регистрация пользователей, авторизация, выход, но при  загрузке страниц  без авторизации 
появляется сообщение:
Notice: Undefined index: email in /var/www/blocks/top.php on line 53

Notice: Undefined index: password in /var/www/blocks/top.php on line 53

Notice: Undefined index: error_auth in /var/www/blocks/block_auth_form.php on line 2

После авторизации, предупреждение не появляются, все работает.
Код как в уроке.
я так понимаю не нравняться переменные в SESSION?
top.php

if (checkUser($_SESSION["email"], $_SESSION["password"]))
require_once "blocks/block_user_panel.php";  
else require_once "blocks/block_auth_form.php";

auth_form.php

 if ($_SESSION["error_auth"]) {
    unset ($_SESSION["error_auth"]);
    $alert = "Неверные e-mail и/или пароль!";
    include "blocks/alert.php"; 


start.php

<?php
      session_start();
     require_once "lib/functions.php";    
?>

что может быть? как убрать ошибку?
Профиль Ответить
02.04.2015 18:03:07 Регистрация и авторизации пользователя на сайте. Сообщение #2
gemiks

gemiks

Мастер

Мастер

Дата регистрации:
17.03.2013 18:03:11

Сообщений: 176

пропишите в каждом файле session_start();
Профиль Ответить
03.04.2015 02:38:52 Регистрация и авторизации пользователя на сайте. Сообщение #3
shokin

shokin

Новичок

Новичок

Дата регистрации:
27.03.2015 08:45:53

Сообщений: 4

В каждом основном файле уже стоит:
<?php
  require_once "start.php";
?>

скрипт start.php -
<?php
     session_start();
     require_once "lib/functions.php";
 ?>
Как в уроке.

При добавление в файлах   session_start();  
появляется дополнительное сообщение.
A session had already been started - ignoring session_start() in
и далее путь на строку в файле или блоке.

Я кстати пользуюсь не Денвером а Апач2 на отдельной машине, ОС  Debian 7.
Профиль Ответить
03.04.2015 02:56:59 Регистрация и авторизации пользователя на сайте. Сообщение #4
gemiks

gemiks

Мастер

Мастер

Дата регистрации:
17.03.2013 18:03:11

Сообщений: 176

Попробуйте не передавать значение напряму типу $_SESSION["email"]
а сначала занесите в переменную, это я об функциях, может из-за этого
Профиль Ответить
03.04.2015 07:10:22 Регистрация и авторизации пользователя на сайте. Сообщение #5
shokin

shokin

Новичок

Новичок

Дата регистрации:
27.03.2015 08:45:53

Сообщений: 4

Насколько можно понять из сообщения ошибки,  иддентификатор сессии не определен, так как пользователь не авторизован.
Вопрос видимо в том как определить иддентификаторы сессии до авторизации?
   email   password    error_auth
Профиль Ответить
06.04.2015 04:10:28 Регистрация и авторизации пользователя на сайте. Сообщение #6
shokin

shokin

Новичок

Новичок

Дата регистрации:
27.03.2015 08:45:53

Сообщений: 4

Проблема решена.
Причина была в том что переменных  email   password    error_auth   в   функции  $_SESSION  нет,  до тех пор пока пользователь не авторизуется.
Поэтому не совсем правильно запрашивать данные в несуществующих переменных, некоторые интернпритаторы PHP  выводят предупреждения, хотя код  работает.
Более правильно будет предворительно проверять есть ли такие переменные в функции, если нет предлагать авторизоваться, если есть проводить проверку.

прверка авторизации
if (!empty($_SESSION['email'])){    //  проверка переменной email
       // если есть тогда - проверка   пользователя
   } else {
       // если нет тогда - запрос авторизации
   }

обработка кнопки "выход".
<?php
     if ($_SESSION["error_auth"]) {   //  проверка переменной
    unset ($_SESSION["error_auth"]); // если есть тогда - сброс переменной, таким образов авторизация удаляеться
    $alert = "Неверные e-mail и/или пароль!";
    include "blocks/block_alert.php";  // выведем через java скрипт предупреждения
   }
?>


в этом случае предупреждения не появляются, все работает.
Профиль Ответить
06.04.2015 16:31:02 Регистрация и авторизации пользователя на сайте. Сообщение #7
gemiks

gemiks

Мастер

Мастер

Дата регистрации:
17.03.2013 18:03:11

Сообщений: 176

Я вам говорил тоже самое, только в другом формате
Профиль Ответить
06.04.2015 16:31:02 Регистрация и авторизации пользователя на сайте. Сообщение #8
gemiks

gemiks

Мастер

Мастер

Дата регистрации:
17.03.2013 18:03:11

Сообщений: 176

Я вам говорил тоже самое, только в другом формате
Профиль Ответить