2013-11-22 68 views
0

您好我有下面的PHP代碼:重定向功能不能很好地工作 - PHP

function redirect() 
{ 
    header("Location: index.php"); 
} 
session_start(); 

if(isset($_SESSION['userName'])) 
    redirect(); 


if($_SERVER['REQUEST_METHOD'] == 'POST') 
{ //more code goes here... 
    redirect(); 
    } 

的問題是,redirect只有在下列條件下工作的功能:

if($_SERVER['REQUEST_METHOD'] == 'POST') 

爲什麼和我該如何解決它?

謝謝!

+2

此功能是一個混亂 –

+0

@JohnConde可以解釋爲什麼請求? –

+1

@NaveTseva - 如果沒有別的,缺少縮進使得它很難閱讀 – andrewsi

回答

4

你可以試試這個,

session_start(); 
    function redirect() 
    { 
     header("Location: index.php"); 
    } 

    if(isset($_SESSION['userName'])){ 
     redirect(); 
    }elseif($_SERVER['REQUEST_METHOD'] == 'POST'){ 
    //more code goes here... 
    redirect(); 
    } 
+0

如果你在'header('location:index.php')之後添加'die()';'在調用'redirect ()'功能?在我的noob日,我想知道爲什麼我的SQL在重定向lol後繼續執行 – MonkeyZeus

0

否則會發生什麼事? 有沒有錯誤? 發生了什麼?

我們需要更多信息!

這應有助於:

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
?> 
0

它工作在這種狀態下監守你是在這種狀態下調用它... 也許如果你使用一些標籤,你可以看到爲什麼

看看

//your function 
function redirect(){ 
    header("Location: index.php"); 
} 
//here your function end 

//this is not part of the function 
session_start(); 
if(isset($_SESSION['userName'])) 
    redirect(); 

if($_SERVER['REQUEST_METHOD'] == 'POST') { 
    //more code goes here... 
    redirect(); 
}