PHP NEWBIE需要注意的一些有關問題
來源:互聯網
上載者:User
PHP NEWBIE需要注意的一些問題
問題1:變數傳遞問題
這個問題恐怕是大家見到的最多的問題了,總有朋友在問:為什麼我裝了PHP後,變數無法在頁面間傳遞?
PHP4.2版本後,將PHP.INI中register_globals的設定改成了Off,這就使原來的一些在低於4.2版本情況下可以啟動並執行程式無法執行。
之所以這麼做是因為在register_globals設定為On的情況下,PHP本身會有安全隱患。在程式設計不嚴密的情況下,別人可以通過某些手段得到你在頁面間傳遞的變數(很可怕的問題哦)。解決的方法有兩個:一是將PHP.INI中的register_globals重新設定成On(不要吧?);二是在使用頁面間傳遞變數的時候,使用PHP為我們準備好的全域變數集。如下:
$_POST['varname'];//通過post方式提交的變數,多用於form的提交()。
$_GET['varname'];//通過get方式提交的變數,可用於from的提交(),也可以用來得到頁面的參數(http://test.php?a=ok)。
$_COOKIE['varname'];
$_SESSION['varname'];//用於得到儲存在session和cookie的變數。
其實上面的這些變數名都可以寫成另一種形式:$HTTP_*_VARS['varname'],即$HTTP_POST_VARS['varname'],$HTTP_GET_VARS['varname'],$HTTP_COOKIE_VARS['varname'],$HTTP_SESSION_VARS['varname'],不過似乎這麼寫也不太安全,所以大家就採用開始說的這種容易寫,又較安全的方法吧。
問題2:關於SESSION的設定
Warning: open(tmp\sess_a18eaa908774d353293cf91777599c90, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
當程式中要使用SESSION時,有的朋友就會問這樣的問題:為什麼在使用SESSION的頁面上會出現類似上面的警告呢?
這種情況只會出現的WINDOWS系統中。這是因為在PHP.INI中,SESSION的預設存放路徑session.save_path='\tmp',這其實是*nix的路徑寫法,而在WINDOWS下面是不存在這樣的路徑的。所以PHP找不到存放SESSION的地方,當然就要發出警告了。解決的方法就是將'\tmp'替換成一個WINDOWS系統下存在的目錄的地址。
還有一點問題,就是在使用SESSION的時候,要想在當前頁面得到SESSION變數,就必須在程式的開始部分加上session_start(),而且在此之前不能有任何的輸出。也就是說,最好就把session_start()寫在第一行。
問題3:關於頁面最大執行時間
當上傳較大的檔案,或是從資料庫讀取大量資料的時候,頁面執行的時間可能變得很長。而PHP.INI中對於頁面執行時間的最大限制預設為max_execution_time=30,也就是說當你的程式執行了30秒還沒結束,就會自動停止回應。所以當你要執行的程式花費時間要較長時間的時候,可以修改max_execution_time=300或更大,以確保程式的正常執行。如果是上傳檔案的話,還要同時注意以下幾個設定:
upload_max_filesize=2M //上傳檔案最大容量
post_max_size=2M //通過post方法提交的檔案最大容量
memory_limit=8M //每個頁面執行時消耗的最大記憶體
---------------------------
一般的程式設定max_execution_time=30,應該就足夠了。
超過這個時間大多是死迴圈。
------解決方案--------------------
探討
啥叫MVP啊?很少見啊
------解決方案--------------------
探討
引用:
啥叫MVP啊?很少見啊
微軟 MVP(最有價值專家)介紹
微軟最有價值專家 (MVP) 是指具備一種或多種微軟技術專業知識,並且積极參与線上或離線的社群活動,經常與其他專業人士分享知識和專業技能,受人尊敬、 信任,而且平易近人的專家。
實際生活中,人們總是信任專家的建議和反饋。微軟 MVP 正是這樣一群擁有豐富知識和實際經驗的微軟技術專家。他們不是微軟的員工……