我遇到标题位置问题会将我重定向到空白页面,而不会让我看到代码,浏览器也不会报告任何错误。我在exampp本地工作
class UserController
{
public $username = '';
private $logged = false;
private $usermodel = '';
public function __construct()
{ session_start();
$this->usermodel = new UserModel();
if ($_SERVER['REQUEST_METHOD']=='POST' && isset($_GET['action'])&& $_GET['action']== 'login' ){
$username = (isset($_POST['username']))? $_POST['username'] :false ;
$password = (isset($_POST['password']))? $_POST['password'] :false ;
if ($username !=false && $password !=false && $this->usermodel->checkLogin($username, $password)){
$this->username =$username ;
$this->logged = true ;
$_SESSION['username']= $username ;
$_SESSION['logged']= true ;
$_SESSION[ 'message' ] = 'Login effettuato correttamente';
}else{
$_SESSION[ 'message' ] = 'Errore con il login; riprovare!';
}
}
elseif (isset($_GET['action'])&& $_GET['action']== 'logout'){
unset($_SESSION['username']);
unset($_SESSION['logged']);
$_SESSION[ 'message' ] = 'Logout effettuato correttamente';
}
elseif (isset($_SESSION['username'])&& isset($_SESSION['logged'])){
$this->username = $_SESSION['username'] ;
$this->logged = true ;
}
elseif(($_SERVER['REQUEST_METHOD']=='POST' && isset($_GET['action'])&& $_GET['action']== 'registra' )){
$username = (isset($_POST['username']))? $_POST['username'] :false ;
$password = (isset($_POST['password']))? $_POST['password'] :false ;
$repassword = (isset($_POST['repassword']))? $_POST['repassword'] :false ;
$nome_reale = (isset($_POST['nome_reale']))? $_POST['nome_reale'] :false ;
$email = (isset($_POST['email']))? $_POST['email'] :false ;
if ($username !=false && $password !=false && $repassword !=false && $nome_reale && $email !=false
&& $this->usermodel->Registration($username,$password,$repassword,$nome_reale,$email) )
{
$this->username =$username ;
$this->logged = true ;
$_SESSION['username']= $username ;
$_SESSION['logged']= true ;
$_SESSION[ 'message' ] = "registrazione effettuato correttamente benvenuto $username";
}
}
$this->redirectToProperArea();
}
public function logged(){
return $this->logged ;
}
public function redirectToProperArea(){
$script_file = basename( $_SERVER[ 'SCRIPT_NAME' ] );
if ( $this->logged() && $script_file == 'login.php' ) {
ob_end_clean();
header('Location: ../index.php' );
exit;
}
elseif ( !$this->Logged() && ( $script_file == 'index.php' && isset( $_GET[ 'action' ] ) && $_GET[ 'action' ] != 'index' && $_GET[ 'action' ] != 'detail' && $_GET[ 'action' ] != 'logout' ) ) {
ob_end_clean();
header('Location: ../login.php');
exit;
}
elseif ( $this->logged() && $script_file == 'registra.php' ) {
ob_end_clean();
header('Location: views/benvenuto.php');
exit;
}
}
}
答案 0 :(得分:0)
我使用函数解决了 `if(!headers_sent()){
header('Location:views/benvenuto.php');
exit;
} `
现在我在benvenuto.php页面中有另一个问题我有一个include('messagge.php');它总是在views目录中与benvenuto.php相同我发现自己总是和我一起加载空白页面包括 谢谢你的帮助
答案 1 :(得分:0)
您是否尝试过更换:
header('Location:...');
到
echo '<script>document.location="..."</script>';