PHP利用header跳轉失效的解決方法

主要介紹了PHP利用header跳轉失效的解決方法,歸納了這類問題的注意事項,非常具有實用價值,需要的朋友可以參考下,就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!

PHP利用header跳轉失效的解決方法

本文實例講述了PHP利用header跳轉失效的解決方法,分享給大家供大家參考。具體方法分析如下:

  一、問題:

今天header("Location: $url"),以往跳轉總是可以的,今天卻不動,只是輸出結果,以往自己要確認檢查,$url的值獲取的是否正確,所以在前面加了echo $url;來調試用,結果就導致了header函數的無效.

  二、解決方法:

在PHP中用header("location:")進行跳轉要注意以下幾點:

1、location和“:”號間不能有空格,否則會出錯.//

2、在用header前不能有任何的輸出,包括include的頁面中標籤“?>”後不能有空格.

3、header後的PHP代碼還會被執行.

PHP的' header 跳轉之前不能有任何內容輸出,因爲PHP開始執行的時候就已經向瀏覽器送出HTTP頭信息,之後就不再允許更改了.

但是如果必須要在輸出之後再處理header信息的話可以使用 ob_start() ob_end_flush() 來緩存一下要發送的內容,等到header繼續再發送內容.

或者一個更簡單的辦法,修改,找到 output_buffering=Off 修改爲 output_buffering=4096.

  複製代碼 代碼如下:

<?php

@mysql_connect("localhost", "root","1981427") //選擇數據庫之前需要先連接數據庫服務

or die("數據庫服務器連接失敗");

@mysql_select_db("test") //選擇數據庫mydb

or die("數據庫不存在或不可用");

$query = @mysql_query("select * from tablename1") //執行SQL語句

or die("SQL語句執行失敗");

?>

  複製代碼 代碼如下:

<?php

@mysql_connect("localhost", "root","1981427") //選擇數據庫之前需要先連接數據庫服務器

or die("數據庫服務器連接失敗");

@mysql_select_db("test") //選擇數據庫mydb

or die("數據庫不存在或不可用");

$query = @mysql_query("insert into tablename1 values('4', 'Judy','456')")

or die("SQL語句執行失敗");

?>

  複製代碼 代碼如下:

<?php

@mysql_connect("localhost", "root","1981427") //選擇數據庫之前需要先連接數據庫服務器

or die("數據庫服務器連接失敗");

@mysql_select_db("test") //選擇數據庫mydb

or die("數據庫不存在或不可用");

$query = @mysql_query("select * from tablename1") //執行SQL語句

or die("SQL語句執行失敗");

echo mysql_result($query, 0, 'username'); //輸出第0行的name列

?>