2013-04-11 3 views
0

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

<?php 
    include_once("config.php"); 
?> 

<?php if(!(isset($_POST['login']))) { ?> 



<!DOCTYPE html> 
<html> 
    <head> 
     <title>Codecall Tutorials - Secured Login with php5</title> 
     <link rel="stylesheet" type="text/css" href="style.css" /> 
    </head> 

    <body> 

     <header id="head" > 
       <p>Codecall tutorials User Login</p> 
      <p><a href="register.php"><span id="register">Register</span></a></p> 
     </header> 

     <div id="main-wrapper"> 
      <div id="login-wrapper"> 
       <form method="post" action=""> 
        <ul> 
         <li> 
          <label for="usn">Username : </label> 
          <input type="text" maxlength="30" required autofocus name="username" /> 
         </li> 

         <li> 
          <label for="passwd">Password : </label> 
          <input type="password" maxlength="30" required name="password" /> 
         </li> 
         <li class="buttons"> 
          <input type="submit" name="login" value="Log me in" /> 
          <input type="button" name="register" value="Register" onclick="location.href='register.php'" /> 
         </li> 

        </ul> 
       </form> 

      </div> 
     </div> 

    </body> 
</html> 

<?php 
} else { 
    $usr = new Users; 
    $usr->storeFormValues($_POST); 

    if($usr->userLogin()) { 

     echo "Welcome"; 


    } else { 
     echo "Incorrect Username/Password"; 

    } 
} 
?> 

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

ответ

1

Вот как сделать PHP перенаправляет:

header('location:index.php'); 
1

Попробуйте добавить

header(); phpfunction для перенаправления вашей страницы в нужное место.

if($usr->userLogin()) { 
     ob_start(); // use output buffering to avoid "header already sent error" 
     echo "Welcome"; //should try to remove this if you want because its unecessary now since your redirecting your page 
     header('Location: pagetoredirect'); 
     ob_end_flush(); //now the headers are sent 

    } else { 
     echo "Incorrect Username/Password"; 

    } 

Источник (PHP.NET)

+0

это не удастся. Вы не можете установить 'header' после любого выхода (включая' echo') – ariefbayu

+0

@ariefbayu, проверяя его на моей локальной машине. спасибо за информацию .. –

+0

Я пробовал подход заголовка, и было бы разумно поместить его в оператор if, но это все равно ничего не делает –

0

Вам нужно будет очистить HTML первый:

  1. Сделайте свои верхние коды деталей в:

    <?php 
        include_once("config.php"); 
    
        if(!(isset($_POST['login']))) { ?> 
    
  2. Добавить header где вы хочу перенаправить:

    if($usr->userLogin()) { 
         header('Location: /path/to/new/page.php'); 
        } else { 
         echo "Incorrect Username/Password"; 
        } 
    
  3. Другой способ заключается в использовании JavaScript:

    if($usr->userLogin()) { ?> 
    
         <div class="message"> 
          Thank you for logging in. You will be redirected in few seconds. 
          Click <a href="/path/to/new/page.php">here</a> if not redirected. 
         </div> 
         <script type="text/javascript"> 
          window.location = "/path/to/new/page.php"; 
         </script> 
        <?php 
        } else { 
         echo "Incorrect Username/Password"; 
        } 
    
0

вы можете перенаправить страницу через коллектор(), как этот

header("location:yoursite.com?$msg=welcome user"); 

, и важно отметить, что заголовок() необходимо вызвать до того, как будет обнаружен какой-либо фактический выход ...

Смежные вопросы