<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

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

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

Подписавшись по 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

Сообщений: 177

пропишите в каждом файле 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

Сообщений: 177

Попробуйте не передавать значение напряму типу $_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

Сообщений: 177

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

gemiks

Мастер

Мастер

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

Сообщений: 177

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