0

我有标题的问题..

我正在研究登录功能……在那

1)如果用户使用他/她的凭据登录...

2)在该用户尝试打开新选项卡并键入 LoginViewController.php 之后。

3)在这里我需要将用户重定向到以前登录的页面..基于seesion active..

4)但标题没有重定向到login.php页面..并显示一些空白页面..

 Here is the LoginViewController.php

 <?php
 session_start();
 include('GenericClasses/GenericCollectionClass.php');
 include('Models/UsersModel.php');
 include('DataObjects/Users.php');
 include('DatabaseAccess/DBHandler.php');

     if(!empty($_SESSION['user']))// Here checking session is empty or not
        {
            header("Location : loggedin.php");// Here it is not redirecting properly
            die();
        }
        else 
         {       

         }?>

这是loggin.php

<?php
  session_start();
  header("Cache-Control: private, must-revalidate, max-age=0");
  header("Pragma: no-cache");
  header("Expires: Fri, 4 Jun 2010 12:00:00 GMT");
  include('GenericClasses/GenericCollectionClass.php');
  include('Models/UsersModel.php');
  include('DataObjects/Users.php');
  include('DatabaseAccess/DBHandler.php');

      if(!isset($_SESSION['user']))
         {
           header('Location: LoginViewController.php');
           exit();
          }
          echo '<div style="background:white; text-align:right"> Login  as:'.$_SESSION['user'].'<a href="LogoutViewController.php" style="text-align:right">Logout</a></div>';
         ?>


Any suggestions are acceptable... 
4

3 回答 3

2

session_start();应该是拳头线。此外,在输出任何内容后,您也无法进行重定向,这包括所包含文件中的任何尾随空格。

于 2013-07-02T06:14:28.157 回答
1

没有通过代码,但乍一看你的问题,我可以建议你三件事..

  1. session_start()应该是第一行之后<?php

  2. 确保在之前输出注释header()。那就不行了。

    文档

    Remember that header() must be called before any actual output is sent, 
    either by normal HTML tags, blank lines in a file, or from PHP. 
    
  3. 尝试使用ob_startafter启用输出缓冲session_start并最终使用ob_flush

于 2013-07-02T06:17:01.640 回答
0

将 session_start() 放在顶部。它应该放在第一行的首位,并从代码中删除不必要的空间。

于 2013-07-02T06:14:18.957 回答