<MyRusakov.ru />

Создание движка на PHP и MySQL 2.0

Создание движка на PHP и MySQL 2.0

Видеокурс "Создание движка на PHP и MySQL 2.0" научит Вас создавать профессиональные движки для сайтов на PHP и MySQL с использованием ООП и паттерна MVC.

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

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

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

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

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

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

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

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

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

Урок Михаила про Админ-панель
28.11.2013 00:45:12 Урок Михаила про Админ-панель Сообщение #1
Ильюха

Ильюха

Новичок

Новичок

Дата регистрации:
21.11.2013 22:53:48

Сообщений: 18

http://blog.myrusakov.ru/admin.html

Здравствуйте!
Вот такой имею вопрос. Пытался сам исправить и так и эдак - не получается.

--------functions.php-------------

function checkUser($email, $password) {
global $mysqli;
connectDB();
$result_set = $mysqli->query("SELECT * FROM `users` WHERE `email`='$email' AND `password`='$password'";
closeDB();
if ($result_set->fetch_assoc()) return true;
else return false; }

function isAdmin($email) {
global $mysqli; connectDB();
$result_set = $mysqli->query("SELECT * FROM `users` WHERE `email` = '$email'";
$row = $result_set->fetch_assoc();
closeDB();
return $row["admin"]; }

----------------------------------

--------start.php-----------------

session_start();
require_once "../Lib/functions.php";
if (!((checkUser($_SESSION['email'], $_SESSION['password'])) && (isAdmin($_SESSION['email'])))) {
header("Location: /Admin/auth.php";
exit; }

-----------------------------------

--------auth.php-----------------

session_start();
require_once "../Lib/functions.php";
if (checkUser($_SESSION["email"], $_SESSION["password"])) {
header("Location: /Admin/index.php";
exit;
}

-----------------------------------

--------index.php-----------------

require_once "start.php";

-----------------------------------


В общем так..
1. Если заходит неавторизовавшийся юзер, то всё как надо, его не пускают.
2. Если заходит админ - тоже всё в порядке.
3. А если заходит любой другой авторизованый юзер, то получается вечный цикл между auth.php и index.php

Помогите, пожалуйста.


Профиль Ответить
28.11.2013 15:23:36 Урок Михаила про Админ-панель Сообщение #2
tikkiwiki

tikkiwiki

Модератор

Модератор

Дата регистрации:
15.11.2013 15:36:59

Сообщений: 194

Здравствуйте, Ильюха. Проследите сами цепь событий. У Вас действительно получается замкнутый круг из-за header route.
Профиль Ответить
28.11.2013 20:21:34 Урок Михаила про Админ-панель Сообщение #3
Ильюха

Ильюха

Новичок

Новичок

Дата регистрации:
21.11.2013 22:53:48

Сообщений: 18

Я чуть-чуть исправил.. Вроде работает..
Так нормально?

session_start();
require_once "../Lib/functions.php";
if ((checkUser($_SESSION["email"], $_SESSION["password"])) && (isAdmin($_SESSION["email"]))) {
header("Location: /Admin/index.php";
exit;
}
else header("Location: ../index.php"; // редирект на главную страницу сайта.
Профиль Ответить
28.11.2013 20:53:46 Урок Михаила про Админ-панель Сообщение #4
tikkiwiki

tikkiwiki

Модератор

Модератор

Дата регистрации:
15.11.2013 15:36:59

Сообщений: 194

Так нормально, как Вы поняли, проблема была очевидной и это наоборот "не тормозит", а развивает Вас. Вы - молодец, что заметили такую простую ошибку и справились с ней.
Профиль Ответить