從浏覽器上看,使用 header(location) 就跳轉到另一個頁面了,但事實上,php卻仍然會執行後台的代碼的,假如後面的代碼有不安全邏輯的,那就直接無視開發者設定的條件,繼續把後面的東西給執行了。
如:
復制代碼 代碼如下:
if(true)
{
header('location:http://www.jb51.net');
}
file_put_contents('test.txt', 'ok');
這個代碼中,粗心的程序員會以為 header('location:http://www.jb51.net'); 就over了,事實上,後台的代碼卻仍然被執行了,所以使用 header(location) 的時候,不管是封裝在另一個函數還是直接寫的,都建議在後面加 exit() 確認程序中止。
====soap
今天運行一個demo代碼,出現了“Class 'SoapClient' not found”錯誤。搜索了一下,需要啟動soap服務,但是在php.ini的Windows Extensions裡面沒有找到soap.dll,一開始還以為我的php版本沒有包含這個dll,到php安裝目錄下的ext子目錄看了一下,發現php_soap.dll是存在的。那就簡單了,直接添加extension=php_soap.dll到Windows Extensions部分,重啟動apache就好了。
ssl默認也是不啟動的,extension=php_openssl.dll,可以在這裡將它前面";"去掉就好了。
復制代碼 代碼如下:
var_dump( $query );//把結果當成文本打印出來查看
$GLOBALS //保存所有全局變量(只在當前頁面中的)
get_defined_vars() //返回由所有已定義變量所組成的數組(包括全局變量,超全局變量等)
get_defined_constants() //返回由所有已定義常量所組成的數組