2012-09-15 45 views
0

我正在使用此代碼來執行某些操作,但最終它需要在本地xampp服務器PHP版本5.4.4上重定向/刷新。在我的本地服務器上一切工作正常,但在Web上它運行在PHP 5.3.14版上,並且不會重定向/刷新。無法刷新包含標題位置的頁面

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    # Variables-> 

    $rand = rand(10, 457); 
    $folder_name = preg_replace('/\s+/', '', $_POST['name']); 
    $folder_name = strtolower($folder_name); 
    $folder_name = "{$folder_name}{$rand}"; 
    if (!mkdir("albums/$folder_name", 0777, true)) { 
     die('Failed to create folders...'); 
    } else { 

     $sql = "INSERT INTO albums (name,folder) VALUES (:name,:folder)"; 
     $q = $db->prepare($sql); 
     $q->execute(array(':name' => $_POST['name'], ':folder' => $folder_name)); 
     header("Location: index.php?p=adm&a=adm-gallery"); 
    } 
} 
+0

會發生什麼?啓用E_ALL錯誤消息級別並讓我們看到輸出。 –

+0

你數據庫查詢成功了嗎? –

+1

這與'header()'調用無關。問題在別處。您可能與PDO有錯誤。另外,不要使用'Location:'標頭的相對路徑!您必須使用完整的網址。大多數瀏覽器都使用相對位置標頭,但不能保證,RFC規範不允許HTTP使用它們。 – Brad

回答

3

你可能有頭之前一些輸出

使用的5.3.14版的JavaScript

echo '<script> document.location = "index.php?p=adm&a=adm-gallery" ; </script>'; 
+0

稍後再試 – Axxess

+0

你的解決方案有效......但我不明白爲什麼在mu本地服務器都很好,在網絡上它不是! – Axxess

+0

你會看到很多這樣的頭和會話,事情是服務器是非常有限的輸出在這些之前,但由於某些原因虛擬服務器如wamp和xamp不關心他們。結果是你的代碼在本地工作,但是相同的代碼在服務器上不起作用。如果您確定在頁面之前沒有輸出,那麼在頁面或附帶頁面中關閉php標記之前或之後,它很可能是空的空間。 – max