我有标题问题..
我正在处理登录功能...
1)如果用户使用他/她的凭证登录......
2)在该用户尝试打开新选项卡并键入LoginViewController.php ..
之后3)在这里,我需要将用户重定向到之前登录的页面...基于seeion active ..
4)但是标题没有重定向到loggedin.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...
答案 0 :(得分:2)
session_start();
应该是第一行。在输出任何内容后,您也无法进行重定向,这包括所包含文件中的任何尾随空格。
答案 1 :(得分:1)
Didnt完成了代码,但乍一看你的问题我可以建议你三件事。
session_start()
应该在<?php
确保在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.
尝试在session_start
后使用ob_start
启用输出缓冲,然后使用ob_flush
答案 2 :(得分:0)
将session_start()放在顶部。它应首先在第一行,并从代码中删除不必要的空间。