2012-01-20 32 views
0

我試圖讓PHP重定向工作,在登錄表單中,但是,它不工作。這是驗證成功的代碼。PHP重定向不工作,會話已啓動

$success = (isset($_POST['uri'])) ? '' : '/index.php'; 

if ($rs->num_rows) { 

    $qn = $db->query("SELECT userid FROM sessions"); 
    $svt = array(); 
    $vbs = $rs->fetch_assoc(); 

    while ($row = $qn->fetch_assoc()) { 
     $svt [] = $row ['userid']; 
    } 

    if (in_array($vbs ['userid'], $svt)) { 
    } else { 
     set_session(array_merge($vbs, array('expires' => time() + (30 * 60)))); 
     $_SESSION['secure3d']['expires'] = time() + (5 * 60); 
     header("Location: $success"); // this isn't working but the session is set. 
    } 
} 

任何想法,我在做什麼錯在這裏?

+1

結束你檢查了else語句已經達到?或者如果某些字符串在標題之前輸出? (例如警告,錯誤消息) – Ismael

+0

你有一個大括號(至少在你的粘貼代碼中) – konsolenfreddy

+0

你有錯誤啓用嗎?包括'ini_set('display_errors',1); error_reporting(E_ALL);'在腳本的頂部並告訴我們它說了什麼。 – kba

回答

0

嘗試$ success作爲絕對URI,例如http://mydomain.com/index.php例如http://mydomain.com/index.php在http/1.1中它必須是絕對URI

另一個流行的錯誤是在標題函數之前發送空格。這可以發生,如果你有一個包括以"?> "

+0

它依賴於你使用的http-Version ...如果您使用http/1.1它必須絕對 – rauschen

+0

[文檔](http://www.php.net/manual/en/function.header.php) – rauschen

+0

不再。 HTTPbis說它可以是相對的。 http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-18#page-45 - 值得注意的是它應該是一個相對URL,但不是一個URI。 ('Location:urn:x:12:AB:FF:00'有點意思。) – mario