2015-12-06 21 views
0

我想做一個用戶登錄網站,我有一個header.php和一個home.php文件。 我有header.php文件頁面下面的代碼:在home.php頁面上如何解決重定向循環錯誤?

<?php 
include ("./inc/connect.inc.php"); 
session_start(); 
if (isset($_SESSION['user_login'])) { 
} 
else 
{ 
header("location: home.php"); 

} 
?> 

我有:

<?php 
include("inc/header.inc.php"); 
?> 
<? 
if (!isset($_SESSION["user_login"]) 

?> 

無論我怎麼努力,我得到這個循環錯誤,請幫忙:(

+0

你是否在home.php中缺少'session_start'? home.php中的重定向在哪裏? – Ishamael

+0

那麼,如果沒有設置'$ _SESSION ['user_login']',那麼你有一個無限循環:'header.php'包含在'home.php'的頂部,因此首先執行並且_always_再次重定向到' home.php'。 – arkascha

回答

0

始終使用header("location: ..");exit();或預期可能無法正常工作。

關於循環兩種錯誤的可能header.phphome.php重定向到彼此。

我不知道如果相同的文件(糾正我,如果我錯了)

header.php要重定向用戶到home.php如果會議沒有被設置並在home.php要包括一個文件header.inc.php(我假設其相同的文件),這是一次又一次

0

沒有什麼,在這兩個文件中設置$_SESSION['user_login'],你需要設置header.php這個參數,否則將繼續陷入這種狀況重定向用戶home.php

else 
{ 
header("location: home.php"); 
} 

迴路如下:

  1. 用戶來到home.php
  2. header.php包含
  3. header.php檢查是否$_SESSION['user_login']已設置
  4. 它具有不那麼頭部位置設置爲home.php
  5. 轉到步驟1

我不完全確定你想在這裏實現什麼,但是我假設你想要顯示一個頁面,但是如果用戶沒有登錄顯示其他內容?

爲什麼不:

if (isset($_SESSION['user_login']) { 
    include('logged_in.php'); 
} else { 
    include('login_page.php'); 
} 

而不是圍繞反彈的用戶,只顯示一個不同的文件?