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

Как сделать редирект на главную после регистрации?

22.05.2017, 13:46. Показов 3660. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите с функцией редиректа. Есть код регистрации, в нем не работает функция редиректа на главную страницу, то есть нужно чтобы после сообщения об успешной регистрации, пользователя перекидывало на главную страницу АВТОРИЗОВАННЫМ.
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
37
38
39
<?php
include_once 'handler.php'; // проверяем авторизирован ли пользователь
 
// если да, перенаправляем его на главную страницу
if($user) {
header ('Location: index.php');
exit();
}
if(!empty($_POST['priglashenie']) AND ($_POST['priglashenie'] =='123456')){
if (!empty($_POST['login']) AND !empty($_POST['password'])) 
{ 
 // фильтрируем логин и пароль 
 $login = mysql_real_escape_string(htmlspecialchars($_POST['login'])); 
 $password = mysql_real_escape_string(htmlspecialchars($_POST['password'])); 
  
 // проверяем есть ли логин в нашей базе данных 
    if (mysql_result(mysql_query("SELECT COUNT(*) FROM `users_profiles` WHERE `username` = '".$login."' LIMIT 1;"), 0) != 0) 
    { 
        echo 'Выбранный логин уже зарегистрирован!'; 
        exit(); 
    } 
 // заносим данные в таблицу, обратите внимание - пароль кодируем в md5 
    mysql_query("INSERT INTO `users_profiles` (`username`, `password`) VALUES ('".$login."', '".md5($password)."')"); 
    echo 'Вы успешно зарегистрированы!'; 
    exit(); 
} 
}
 // форма регистрации 
echo ' 
<form action="register.php" method="POST"> 
Логин:<br/> 
<input name="login" type="text" value="" /><br/> 
Пароль:<br/> 
<input name="password" type="text" value="" /><br/> 
Приглашение:<br/> 
<input name="priglashenie" type="text" value="" /><br/> 
<input type="submit" value="Зарегистрироваться" /> 
</form>'; 
?>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.05.2017, 13:46
Ответы с готовыми решениями:

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

Как не делать редирект после регистрации
Добрый день у меня сайт на wordpress, делаю регистрацию пользователей через Theme my login. Так вот после регистрации происходит...

Как сделать редирект с index.html на главную страницу?
Как сделать редирект с index.html на главную страницу? Добавлено через 2 минуты в htaccess

12
 Аватар для sash
89 / 87 / 49
Регистрация: 09.10.2014
Сообщений: 571
22.05.2017, 14:25
Попробуй так

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
37
38
39
40
41
42
43
44
<?php
 
ob_start();
include_once 'handler.php'; // проверяем авторизирован ли пользователь
 
// если да, перенаправляем его на главную страницу
if($user) {
header ('Location: index.php');
exit();
}
if(!empty($_POST['priglashenie']) AND ($_POST['priglashenie'] =='123456')){
if (!empty($_POST['login']) AND !empty($_POST['password'])) 
{ 
 // фильтрируем логин и пароль 
 $login = mysql_real_escape_string(htmlspecialchars($_POST['login'])); 
 $password = mysql_real_escape_string(htmlspecialchars($_POST['password'])); 
  
 // проверяем есть ли логин в нашей базе данных 
    if (mysql_result(mysql_query("SELECT COUNT(*) FROM `users_profiles` WHERE `username` = '".$login."' LIMIT 1;"), 0) != 0) 
    { 
        echo 'Выбранный логин уже зарегистрирован!'; 
        exit(); 
    } 
 // заносим данные в таблицу, обратите внимание - пароль кодируем в md5 
    mysql_query("INSERT INTO `users_profiles` (`username`, `password`) VALUES ('".$login."', '".md5($password)."')"); 
    echo 'Вы успешно зарегистрированы!'; 
    sleep(3);
    header('Location: /');
} 
}
 // форма регистрации 
echo ' 
<form action="register.php" method="POST"> 
Логин:<br/> 
<input name="login" type="text" value="" /><br/> 
Пароль:<br/> 
<input name="password" type="text" value="" /><br/> 
Приглашение:<br/> 
<input name="priglashenie" type="text" value="" /><br/> 
<input type="submit" value="Зарегистрироваться" /> 
</form>'; 
 
ob_end_flush();
?>
0
0 / 0 / 0
Регистрация: 08.02.2017
Сообщений: 47
22.05.2017, 15:07  [ТС]
sash, Не работает. Регистрация происходит, но сообщение об успешной регистрации не появляется и нет редиректа.
0
 Аватар для sash
89 / 87 / 49
Регистрация: 09.10.2014
Сообщений: 571
22.05.2017, 15:44
afewq, поставь в самом верху error_reporting(E_ALL); и посмотри, где-то там чтото не так видно
0
0 / 0 / 0
Регистрация: 08.02.2017
Сообщений: 47
22.05.2017, 15:51  [ТС]
sash, Поставил, сообщение об успешной регистрации появляется, но редиректа как не было так и нет
0
 Аватар для sash
89 / 87 / 49
Регистрация: 09.10.2014
Сообщений: 571
22.05.2017, 15:59
afewq, а если так?

PHP
1
2
3
4
5
6
7
$success = mysql_query("INSERT INTO `users_profiles` (`username`, `password`) VALUES ('".$login."', '".md5($password)."')"); 
 
if($success){
  echo 'Вы успешно зарегистрированы!'; 
  sleep(3);
  header('Location: /');
}
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
22.05.2017, 16:32
Цитата Сообщение от sash Посмотреть сообщение
а если так?
Нет, так неправильно.
0
0 / 0 / 0
Регистрация: 08.02.2017
Сообщений: 47
22.05.2017, 16:33  [ТС]
sash, Если я правильно понял то этот код подразумевает использование без exit, регистрация проходит и появляется сообщение ОК над формой, если exit оставить, то ОК на пустой странице, но редиректа все равно нет
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
22.05.2017, 16:37
P.S. Если вы что-то выводите на страницу, нужно делать пользовательский редирект (JS по таймеру, заголовок Refresh и т.п.).

Добавлено через 3 минуты
Вообще же обычно сначала делается протолкольный редирект на страницу с сообщением, а затем на ней – пользовательский и/или проставляется ссылка на страницу, куда пользователь должен перейти.
0
0 / 0 / 0
Регистрация: 08.02.2017
Сообщений: 47
24.05.2017, 10:37  [ТС]
miketomlin, да но как это реализовать в коде
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
24.05.2017, 10:46
В лоб. Не делать echo, а только header Location на страницу с сообщением. JS и проч. – не профиль этой ветки форума и мой. Но тут гугл поможет за 5 мин. или обращайтесь в соотв. ветку форума.
0
0 / 0 / 0
Регистрация: 08.02.2017
Сообщений: 47
24.05.2017, 13:00  [ТС]
Заменил echo на header Location. В этом месте:
PHP
1
2
3
4
5
 
// заносим данные в таблицу, обратите внимание - пароль кодируем в md5 
    mysql_query("INSERT INTO `users_profiles` (`username`, `password`) VALUES ('".$login."', '".md5($password)."')"); 
    header ('Location: index.php');
    exit();
Возможно дико так делать, но перенаправление на главную заработало! Но как сделать, чтобы попадая на главную пользователь автоматом становился user?

Весь код:

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
37
38
39
<?php
include_once 'handler.php'; // проверяем авторизирован ли пользователь
 
// если да, перенаправляем его на главную страницу
if($user) {
header ('Location: index.php');
exit();
}
if(!empty($_POST['priglashenie']) AND ($_POST['priglashenie'] =='12345')){
if (!empty($_POST['login']) AND !empty($_POST['password'])) 
{ 
 // фильтрируем логин и пароль 
 $login = mysql_real_escape_string(htmlspecialchars($_POST['login'])); 
 $password = mysql_real_escape_string(htmlspecialchars($_POST['password'])); 
  
 // проверяем есть ли логин в нашей базе данных 
    if (mysql_result(mysql_query("SELECT COUNT(*) FROM `users_profiles` WHERE `username` = '".$login."' LIMIT 1;"), 0) != 0) 
    { 
        echo 'Выбранный логин уже зарегистрирован!'; 
        exit(); 
    } 
 // заносим данные в таблицу, обратите внимание - пароль кодируем в md5 
    mysql_query("INSERT INTO `users_profiles` (`username`, `password`) VALUES ('".$login."', '".md5($password)."')"); 
    header ('Location: index.php');
    exit(); 
} 
}
 // форма регистрации 
echo ' 
<form action="register.php" method="POST"> 
Логин:<br/> 
<input name="login" type="text" value="" /><br/> 
Пароль:<br/> 
<input name="password" type="text" value="" /><br/> 
Приглашение:<br/> 
<input name="priglashenie" type="text" value="" /><br/> 
<input type="submit" value="Зарегистрироваться" /> 
</form>'; 
?>

Код главной страницы:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include_once 'handler.php'; // проверяем авторизирован ли пользователь
 
if($user) {
// выводим информацию для пользователя
echo 'Привет, <b>'.$user['username'].'</b>!<br />
- <a href="exit.php">Выйти</a><br />
';
} else {
// выводим информацию для гостя
echo '
- <a href="login.php">Авторизация</a><br />
- <a href="register.php">Регистрация</a><br />
';
}
?>
Добавлено через 1 час 51 минуту
В общем методом тыка и интуиции будучи полным нулем в php, посидел и собрал из двух файлов register.php и login.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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
include_once 'handler.php'; // проверяем авторизирован ли пользователь
 
// если да, перенаправляем его на главную страницу
if($user) {
header ('Location: index.php');
exit();
}
if(!empty($_POST['priglashenie']) AND ($_POST['priglashenie'] =='12345')){
if (!empty($_POST['login']) AND !empty($_POST['password'])) 
{ 
 // фильтрируем логин и пароль 
 $login = mysql_real_escape_string(htmlspecialchars($_POST['login'])); 
 $password = mysql_real_escape_string(htmlspecialchars($_POST['password'])); 
  
 // проверяем есть ли логин в нашей базе данных 
    if (mysql_result(mysql_query("SELECT COUNT(*) FROM `users_profiles` WHERE `username` = '".$login."' LIMIT 1;"), 0) != 0) 
    { 
        echo 'Выбранный логин уже зарегистрирован!'; 
        exit(); 
    } 
 // заносим данные в таблицу, обратите внимание - пароль кодируем в md5 
    mysql_query("INSERT INTO `users_profiles` (`username`, `password`) VALUES ('".$login."', '".md5($password)."')"); 
        $search_user = mysql_result(mysql_query("SELECT COUNT(*) FROM `users_profiles` WHERE `username` = '".$login."' AND `password` = '".md5($password)."'"), 0);
    if($search_user == 0)
    {
        
        
    }
    else
    {
        // заносим логин и пароль в куки
        $time = 60*60*24; // сколько времени хранить данные в куках
        setcookie('username', $login, time()+$time, '/');
        setcookie('password', md5($password), time()+$time, '/');
        echo 'Вы успешно зарегистрировались <a href="/">Перейти на главную</a>';
        
    }
    header ('Location: index.php');
    exit(); 
} 
}
 // форма регистрации 
echo ' 
<form action="register.php" method="POST"> 
Логин:<br/> 
<input name="login" type="text" value="" /><br/> 
Пароль:<br/> 
<input name="password" type="text" value="" /><br/> 
Приглашение:<br/> 
<input name="priglashenie" type="text" value="" /><br/> 
<input type="submit" value="Зарегистрироваться" /> 
</form>'; 
?>
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
24.05.2017, 13:41
Цитата Сообщение от afewq Посмотреть сообщение
Но как сделать, чтобы попадая на главную пользователь автоматом становился user?
Авторизацию нужно делать на кажд. странице.

Цитата Сообщение от afewq Посмотреть сообщение
В общем методом тыка и интуиции будучи полным нулем в php, посидел и собрал из двух файлов register.php и login.php вот такой код. Все норм заработало
Это может вам только казаться, а на самом деле может быть дырка на дырке. Не нужно пускать это в реальное дело, коли собрали методом тыка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.05.2017, 13:41
Помогаю со студенческими работами здесь

Не работает push на главную страницу после регистрации
Здраствуйте! помогите найти в чем ошибка, мне нужно после того как данные с инпута записались localStorage сделать push на главную...

После регистрации вывести сообщение и перенаправить на главную
Есть вопрос. У меня есть вьюшка (страничка регистрации) и ее контроллер. После того как пользователь вводит регистрационные данные и...

Редирект после регистрации
Привет всем! Нужна помощь в перенаправлении на страничку завершения регистрации после отправки формы и затем с временной задержкой - на...

Как сделать редирект после отправки письма?
Пытаюсь сделать редирект с задержкой после вывода сообщения с надписью &quot;Сообщение отправлено&quot;. &lt;?php /* Здесь...

Как сделать редирект после отправки формы
Привет всем, подскажите плиз, как сделать редирект на страницу &quot;Спасибо за сообщение&quot;, после того как была отправлена форма. Вот...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru