Автор Тема: Как сделать перенаправление на форму входа после рагистрации  (Прочитано 1039 раз)

0 Пользователей и 1 Гость просматривают эту тему.

nikogdaАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 100 сообщений Более 50 созданных тем Топ 10 по созданным темам
  • Дата регистрации: Июль 2016
  • Сообщений: 201
  • Страна: ru
  • Поблагодарили: 4 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
Здравствуйте.
Люди, подскажите пожалуйста как после регистрации перенаправляло на форму для входа.
В коде вроде все нормально, а перекидывает после регистрации через 3 секунды сразу в аккаунт.

Код:
<?php
$_OPTIMIZATION["title"] = "Регистрация";
$_OPTIMIZATION["description"] = "Регистрация пользователя в системе";
$_OPTIMIZATION["keywords"] = "Регистрация нового участника в системе";

if(isset($_SESSION["user_id"])){ Header("Location: /account"); return; }


?>

<?PHP
   
   # Регистрация

   if(isset($_POST["login"])){
      
   //if (!empty($_POST['g-recaptcha-response'])) {
   
   //if(isset($_SESSION["captcha"]) AND strtolower($_SESSION["captcha"]) == strtolower($_POST["captcha"])){
    //unset($_SESSION["captcha"]);

   $login = $func->IsLogin($_POST["login"]);
   $pass = $func->IsPassword($_POST["pass"]);
   $rules = isset($_POST["rules"]) ? true : false;
   $time = time();
   $ip = $func->UserIP;
   $ipregs = $db->Query("SELECT * FROM `db_users_a` WHERE INET_NTOA(db_users_a.ip) = '$ip' ");
   $ipregs = $db->NumRows();

   $email = $func->IsMail($_POST["email"]);
   $referer_id = (isset($_COOKIE["i"]) AND intval($_COOKIE["i"]) > 0 AND intval($_COOKIE["i"]) < 1000000) ? intval($_COOKIE["i"]) : 1;
   $referer_name = "";
   if($referer_id != 1){
      $db->Query("SELECT user FROM db_users_a WHERE id = '$referer_id' LIMIT 1");
      if($db->NumRows() > 0){$referer_name = $db->FetchRow();}
      else{ $referer_id = 1; $referer_name = "Admin"; }
   }else{ $referer_id = 1; $referer_name = "Admin"; }
   
      if($rules){

            
         if($ipregs >= 0) {

         if($email !== false){
      
         if($login !== false){
         
            if($pass !== false){
         
               if($pass == $_POST["repass"]){
                  
                  $db->Query("SELECT COUNT(*) FROM db_users_a WHERE user = '$login'");
                  if($db->FetchRow() == 0){
                     
                     $db->Query("SELECT COUNT(*) FROM db_users_a WHERE email = '$email'");
                     if($db->FetchRow() == 0){
                        
                        # Регаем пользователя
                        $db->Query("INSERT INTO db_users_a (user, email, pass, referer, referer_id, date_reg, ip)
                        VALUES ('$login','$email','$pass','$referer_name','$referer_id','$time',INET_ATON('$ip'))");
                        
                        $lid = $db->LastInsert();
                        
                        $db->Query("INSERT INTO db_users_b (id, user, money_b, a_t, last_sbor) VALUES ('$lid','$login','0','1', '".time()."')");
                        
                        # Вставляем статистику
                        $db->Query("UPDATE db_stats SET all_users = all_users +1 WHERE id = '1'");
                        
                        # За регистрацию реферала 25 серебра
                        $db->Query("UPDATE db_users_b SET money_b = money_b+0 WHERE id = '$referer_id'");


                        
                        # Авторизуемся
                        $db->Query("SELECT id, user, pass, referer_id, banned FROM db_users_a WHERE email = '$email'");

                        $log_data = $db->FetchArray();
                        
                        $_SESSION["user_id"] = $log_data["id"];
                        $_SESSION["user"] = $log_data["user"];
                        $_SESSION["referer_id"] = $log_data["referer_id"];
                        
                        echo '
                        <script type="text/javascript">
      setTimeout(function() {
      swal({
         type: "success",
         title: "Поздравляем!",
         text: "Вы успешно зарегистрировались! Через 3 сек. вам откроется форма входа!",
         timer: 5000,
         showConfirmButton: true
      });
      }, 500);
      </script> </div>';
      header("Refresh: 3; URL=/login");
      
                     ?>
                  <?PHP
                  return;
                  
                     }else echo "<div class='alert alert-danger'><i class='fa fa-exclamation-triangle'>Указанный email уже используется</div>";
                  
                  }else echo "<div class='alert alert-danger'><i class='fa fa-exclamation-triangle'>Указанный логин уже используется</div>";
                  
               }else echo "<div class='alert alert-danger'><i class='fa fa-exclamation-triangle'>Пароль и повтор пароля не совпадают</div>";
         
            }else echo "<div class='alert alert-danger'><i class='fa fa-exclamation-triangle'>Пароль заполнен неверно</div>";
         
         }else echo "<div class='alert alert-danger'><i class='fa fa-exclamation-triangle'>Логин заполнен неверно</div>";

      }else echo "<div class='alert alert-danger'><i class='fa fa-exclamation-triangle'>Email имеет неверный формат</div>";
      
      }else echo "<div class='alert alert-danger'><i class='fa fa-exclamation-triangle'>Регистрация с этого IP уже производилась</div>";
      
      }else echo "<div class='alert alert-danger'><i class='fa fa-exclamation-triangle'>Вы не подтвердили правила</div>";
   
      //}else echo "<div class='alert alert-danger'><i class='fa fa-exclamation-triangle'>Символы с картинки введены неверно</div>";
      
       //}else echo "<div class='alert alert-danger'><i class='fa fa-exclamation-triangle'>Капча не пройдёна!</div>";


   }
   
   include("cap.php");
?>
 

whoohaw

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! За помощь пользователям Более 250 сообщений За финансовую помощь форуму !!! Репутация более 15 За время в онлайне на форуме Более 10 созданных тем
  • Дата регистрации: Апр. 2018
  • Расположение: Тверь
  • Возраст: 35
  • Сообщений: 320
  • Страна: ru
  • Поблагодарили: 27 раз(а)
  • Репутация +17/-1
  • Пол: Мужской
  • Дата рождения:
    1988-09-21
    Социальные сети:
    ВКонтакте
Убери это:
 $_SESSION["user_id"] = $log_data["id"];
$_SESSION["user"] = $log_data["user"];
$_SESSION["referer_id"] = $log_data["referer_id"];

Этот код присваивает сессионным переменным значения пользователя. Соответственно, когда эти глобальные переменные заполнены - операция авторизации не требуется и пользователь может гулять по сайту как авторизованный. Простыми словами попробовал )
 

nikogdaАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 100 сообщений Более 50 созданных тем Топ 10 по созданным темам
  • Дата регистрации: Июль 2016
  • Сообщений: 201
  • Страна: ru
  • Поблагодарили: 4 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
Этот код присваивает сессионным переменным значения пользователя. Соответственно, когда эти глобальные переменные заполнены - операция авторизации не требуется и пользователь может гулять по сайту как авторизованный. Простыми словами попробовал )

Попробовал закрыть // и получилось следующее. В аккаунт уже не перекидывает, но перенаправление идет не на форму входа , а на главную страницу.
 

whoohaw

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! За помощь пользователям Более 250 сообщений За финансовую помощь форуму !!! Репутация более 15 За время в онлайне на форуме Более 10 созданных тем
  • Дата регистрации: Апр. 2018
  • Расположение: Тверь
  • Возраст: 35
  • Сообщений: 320
  • Страна: ru
  • Поблагодарили: 27 раз(а)
  • Репутация +17/-1
  • Пол: Мужской
  • Дата рождения:
    1988-09-21
    Социальные сети:
    ВКонтакте
Адрес страницы для авторизации соответствует тому адресу, который в коде?
сайт.ру/login ?
 

nikogdaАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 100 сообщений Более 50 созданных тем Топ 10 по созданным темам
  • Дата регистрации: Июль 2016
  • Сообщений: 201
  • Страна: ru
  • Поблагодарили: 4 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
Адрес страницы для авторизации соответствует тому адресу, который в коде?
сайт.ру/login ?

Посмотрел и вот что заметил:
в ../pages/ есть вот такой файл почему-то ../pages/_login.php и в нем прописано  <?PHP include("inc/_login.php"); ?>
ну и посмотрел в /inc/_login.php - код самой формы входа
Может из-за этого...
 

whoohaw

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! За помощь пользователям Более 250 сообщений За финансовую помощь форуму !!! Репутация более 15 За время в онлайне на форуме Более 10 созданных тем
  • Дата регистрации: Апр. 2018
  • Расположение: Тверь
  • Возраст: 35
  • Сообщений: 320
  • Страна: ru
  • Поблагодарили: 27 раз(а)
  • Репутация +17/-1
  • Пол: Мужской
  • Дата рождения:
    1988-09-21
    Социальные сети:
    ВКонтакте
Так у тебя же нет отдельного файла для авторизации, это маленький блок, который тянет инфо из файла с авторизацией (саму форму и обработчик формы). Поэтому тебя на главную и кинет в любом случае ) Чтобы перекидывало на страницу авторизации - ее надо создать )) Как туда отправлять, если страницы по факту не существует? )
 

nikogdaАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 100 сообщений Более 50 созданных тем Топ 10 по созданным темам
  • Дата регистрации: Июль 2016
  • Сообщений: 201
  • Страна: ru
  • Поблагодарили: 4 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
Так у тебя же нет отдельного файла для авторизации, это маленький блок, который тянет инфо из файла с авторизацией (саму форму и обработчик формы). Поэтому тебя на главную и кинет в любом случае ) Чтобы перекидывало на страницу авторизации - ее надо создать )) Как туда отправлять, если страницы по факту не существует? )

Получается нужно в pages/_login.php вставить весь код из _inc/login.php ?

Если так, то как быть с файлом inc/_menu_left.php в котором есть }else include("inc/_login.php");

Выглядит так inc/_menu_left.php
<?PHP

if(isset($_SESSION["user"]) OR isset($_SESSION["admin"])){

   if(isset($_SESSION["admin"]) AND isset($_GET["menu"]) AND $_GET["menu"] == "adminka"){
   
      include("inc/_admin_menu.php");
   
   }elseif(isset($_SESSION["user"])){
      
         include("inc/_user_menu.php");
      
      }else include("inc/_login.php");

}else include("inc/_login.php");

include("inc/_stats.php");
?>
 

whoohaw

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! За помощь пользователям Более 250 сообщений За финансовую помощь форуму !!! Репутация более 15 За время в онлайне на форуме Более 10 созданных тем
  • Дата регистрации: Апр. 2018
  • Расположение: Тверь
  • Возраст: 35
  • Сообщений: 320
  • Страна: ru
  • Поблагодарили: 27 раз(а)
  • Репутация +17/-1
  • Пол: Мужской
  • Дата рождения:
    1988-09-21
    Социальные сети:
    ВКонтакте
Просто сделай страницу login.php по аналогии с другими. Туда весь код из inc/_login.php

А из user_menu.php убрать инклюд с /inc/_login.php
 

nikogdaАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 100 сообщений Более 50 созданных тем Топ 10 по созданным темам
  • Дата регистрации: Июль 2016
  • Сообщений: 201
  • Страна: ru
  • Поблагодарили: 4 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
Просто сделай страницу login.php по аналогии с другими. Туда весь код из inc/_login.php

А из user_menu.php убрать инклюд с /inc/_login.php

Убрал из pages/_login.php код <?PHP include("inc/_login.php"); ?>
Весь код авторизации из inc/_login.php переместил в pages/_login.php

Все равно перенаправляет на главную.

Может чтобы не мучится прописать - <script type="text/javascript">"Вы успешно зарегистрировались! Через 3 сек. вы будете перенаправлены в аккаунт"...>
 

whoohaw

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! За помощь пользователям Более 250 сообщений За финансовую помощь форуму !!! Репутация более 15 За время в онлайне на форуме Более 10 созданных тем
  • Дата регистрации: Апр. 2018
  • Расположение: Тверь
  • Возраст: 35
  • Сообщений: 320
  • Страна: ru
  • Поблагодарили: 27 раз(а)
  • Репутация +17/-1
  • Пол: Мужской
  • Дата рождения:
    1988-09-21
    Социальные сети:
    ВКонтакте
Этот адрес сайт.ру/Login у тебя прописан в правилах? (htaccess) и условно обзовем эту вещь маршрутизатором (корневой index.php)
 

nikogdaАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 100 сообщений Более 50 созданных тем Топ 10 по созданным темам
  • Дата регистрации: Июль 2016
  • Сообщений: 201
  • Страна: ru
  • Поблагодарили: 4 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
Этот адрес сайт.ру/Login у тебя прописан в правилах? (htaccess) и условно обзовем эту вещь маршрутизатором (корневой index.php)

Посмотрел - не прописан.
Думаю нужно закрыть на это глаза, раз уж не хочет работать эта штука. печально конечно и хочется ее победить, но опять уйму времени тратить не хочется и мучить себя и остальных. получается остается сделать перенаправление сразу в аккаунт.
Есть у меня мысль, сейчас попробую, если получится отпишу.
 

whoohaw

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! За помощь пользователям Более 250 сообщений За финансовую помощь форуму !!! Репутация более 15 За время в онлайне на форуме Более 10 созданных тем
  • Дата регистрации: Апр. 2018
  • Расположение: Тверь
  • Возраст: 35
  • Сообщений: 320
  • Страна: ru
  • Поблагодарили: 27 раз(а)
  • Репутация +17/-1
  • Пол: Мужской
  • Дата рождения:
    1988-09-21
    Социальные сети:
    ВКонтакте
А в чем сложность по аналогии прописать правило для новой страницы? )) Посмотри как занесена страница signup и повтори только с новым адресом
 

nikogdaАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 100 сообщений Более 50 созданных тем Топ 10 по созданным темам
  • Дата регистрации: Июль 2016
  • Сообщений: 201
  • Страна: ru
  • Поблагодарили: 4 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
А в чем сложность по аналогии прописать правило для новой страницы? )) Посмотри как занесена страница signup и повтори только с новым адресом

Все сделал.
Еще забыл закрыть вот такими штуками "//" следующее в файле pages/signup.php:
//$_SESSION["user_id"] = $log_data["id"];
//$_SESSION["user"] = $log_data["user"];
//$_SESSION["referer_id"] = $log_data["referer_id"];

Теперь все заработало. Даже не верится. Какая-то опять очередная мелочь, например в виде закрытия кода вот такими штуками // и все...ничего не получается.  Не внимательность еще((( пипец.

Спасибо большое в очередной раз за помощь.
 
Теги: