Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
2 / 2 / 2
Регистрация: 20.10.2016
Сообщений: 92

Редирект после авторизации

20.10.2016, 20:42. Показов 1671. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Я новичок в этом деле и хочу разобраться, почему после авторизации страница с входом остается. Для представления, у меня есть несколько .php-файлов, содержимое которых следующее:
1) index.php - основная страница. Из php в ней:
PHP
1
2
3
4
<?php
session_start();
require 'auth.php'; 
?>
2) auth.php :
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
if(!isset($_SESSION['loggedIn'])){
    header("Location: enter.php");
    exit;
}
if($_GET['do'] == 'logout'){
unset($_SESSION['loggedIn']);
session_destroy();
}
?>
3) enter.php - страница собственно самой авторизации. ее php :
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
session_start();
?>
...
<?php 
include 'dbconnect.php';
if(isset($_SESSION['loggedIn'])){
    header("Location: index.php");
    exit;}
if(isset($_POST['submit'])){
     if(empty($_POST['login']) or empty($_POST['password'])){
             $info_input = 'Для входа введите логин и пароль';
     }elseif(!preg_match("/[-a-zA-Z0-9]{3,15}/", $_POST['login'])){
             $info_input = 'Вы неправильно ввели логин';
     }elseif(!preg_match("/[-a-zA-Z0-9]{3,30}/", $_POST['password1'])){ 
    $info_input = 'Вы неправильно ввели пароль';
     }else{
$login = $_POST['login'];
$password = md5($_POST['password1']);
mysql_connect("localhost", "root");
$query = mysql_query("SELECT id FROM users.users WHERE login='$login' AND password='$password'");
$id_user = mysql_fetch_array($query);
$row  = mysql_num_rows($query);
if ($row == 0){
    exit ("Извините, введённый логин или пароль неверный.");
}
elseif($row == 1)
{SESSION_START($_SESSION["loggedIn"] = $id_user[id]);
    header('Location: index.php');
    exit;}}}
?>
4) dbconnect.php 
<?php
$db = mysql_connect ("localhost", "root");
mysql_select_db ("users",$db);
?>
теперь сам вопрос, или даже просьба. Подскажите, пожалуйста, что не так? Желательно все. Спасибо большое заранее. Да, кстати, в интернете искал много...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.10.2016, 20:42
Ответы с готовыми решениями:

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

Редирект при авторизации
Здравствуйте. Столкнулся с такой проблемой: при авторизации у себя на сайте на локальном сервере (openserver) через вк, я получаю: ...

Редирект при авторизации
Вот сам код, где написать редирект? &lt;?php session_start(); require ('connect.php'); if (isset($_POST) and...

6
 Аватар для prudkiy
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
20.10.2016, 23:11
лично мне сразу бросилось вот это
PHP
1
SESSION_START($_SESSION["loggedIn"] = $id_user[id])
Вы уверены что данная сессия вообще создается, видимо нет если условие
PHP
1
if(!isset($_SESSION['loggedIn']))
срабатывает.
Напишите лучше
PHP
1
2
3
4
elseif($row == 1)
{$_SESSION["loggedIn"] = $id_user[id];
    header('Location: index.php');
    exit;}}}
0
2 / 2 / 2
Регистрация: 20.10.2016
Сообщений: 92
21.10.2016, 05:33  [ТС]
не работает(( все равно остается на странице авторизации почему-то
0
94 / 94 / 68
Регистрация: 26.03.2015
Сообщений: 248
21.10.2016, 06:21
Согласно документации
функцию header() можно вызывать только если клиенту еще не передавались данные. То есть она должна идти первой в выводе, перед ее вызовом не должно быть никаких HTML тэгов, пустых строк и т.п.
Это значит, что вне тегов <?php и ?> до вызова функции header() не должно быть никаких символов, включая пробелы и переносы строки. Возможно, проблема в этом, потому что у вас такие символы есть в файле enter.php в 4-ой строке. Попробуйте это исправить.
0
 Аватар для prudkiy
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
21.10.2016, 17:56
ns16, header согласно описанию проблемы работает. Проблема стоит в том что $_SESSION['loggedIn'] нет т.к. после авторизации и редиректа срабатывает вот этот блок
PHP
1
2
3
4
if(!isset($_SESSION['loggedIn'])){
    header("Location: enter.php");
    exit;
}
elochka, я еще раз повторюсь - проверьте вот на этой странице, что говорит
PHP
1
2
3
4
if(isset($_SESSION['loggedIn'])){
    echo $_SESSION['loggedIn'];
}
else 'нет такого';
и вот если нет такого то смотрите почему она не создалась. Ищите ошибку пошагово.
1
2 / 2 / 2
Регистрация: 20.10.2016
Сообщений: 92
21.10.2016, 20:00  [ТС]
Спасибо, я посмотрю)

Добавлено через 5 минут
странно, но он не выводит вообще ничего
0
 Аватар для prudkiy
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
21.10.2016, 22:17
Цитата Сообщение от elochka Посмотреть сообщение
но он не выводит вообще ничего
ой сорян, если скопировала так как написал то ясный красный. там команды ехо нету. нужно -
PHP
1
2
3
4
if(isset($_SESSION['loggedIn'])){
    echo $_SESSION['loggedIn'];
}
else echo 'нет такого';
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.10.2016, 22:17
Помогаю со студенческими работами здесь

После авторизации повторно перекидывает обратно на страницу авторизации
Так, у меня есть проблема. Как только авторизируюсь, перекидывает обратно на авторизацию. Вот код, login.php: &lt;? ...

Не получается редирект после авторизации пользователя
у меня на сайте после авторизации выбрасывает на страницу профиля пользователя, а надо на другую на другую... Где можно прописать редирект?...

Как сделать редирект на страницу после авторизации успешной?
Вопрос простой до безумия, тем более учитывая то, что у меня после авторизации уже выскакивает сообщение &quot;Успешно авторизованы&quot; ...

Не работает редирект после "ручной" авторизации
Всем привет. Сделал &quot;кастомную&quot; авторизацию, по документации ларавеля (версия 5.4) public function authenticate(Request $request)...

Редирект на страницу авторизации
всем доброго времени суток. есть web-приложение на стеке MEAN. возникла необходимость ограничить доступ к странице для не авторизованного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru