Php常見問題總結(jié)_PHP教程
推薦:使用Xdebug優(yōu)化你的php程序我本地使用的是xampp服務(wù)器套件,版本是1.64,發(fā)現(xiàn)里面代的php_xdebug.dll竟然無法使用.應(yīng)該是xdebug版本和當前的php版本(5.24)版本不符合。去下載了相應(yīng)的版本發(fā)現(xiàn)可以正常工作了。在php.ini里
在提問題前請先仔細查閱PHP手冊,MYSQL手冊 以及PHPINFO里面的設(shè)置。
另外希望你讀一下PHP編程標準。(站長書庫)
精彩30問,網(wǎng)羅常見PHP問題,希望大家細心查看。
1:為什么我得不到變量
我在一網(wǎng)頁向另一網(wǎng)頁POST數(shù)據(jù)name,為什么輸出$name時卻得不到任何值?
在PHP4.2以后的版本中register_global默認為off
若想取得從另一頁面提交的變量:
方法一:在PHP.ini中找到register_global,并把它設(shè)置為on.
方法二:在接收網(wǎng)頁最前面放上這個extract($_POST);extract($_GET);(注意extract($_SESSION)前必須要有Session_Start()).
方法三:一個一個讀取變量$a=$_GET["a"];$b=$_POST["b"]等,這種方法雖然麻煩,但比較安全.
2:調(diào)試你的程序
在運行時必須知道某個變量為何值。我是這樣做的,建立一文件debug.php,其內(nèi)容如下:
| <?PHP Ob_Start(); Session_Start(); Echo "<pre>"; Echo "本頁得到的_GET變量有:"; Print_R($_GET); Echo "本頁得到的_POST變量有:"; Print_R($_POST); Echo "本頁得到的_COOKIE變量有:"; Print_R($_COOKIE); Echo "本頁得到的_SESSION變量有:"; Print_R($_SESSION); Echo "</pre>"; ?> |
然后在php.ini中設(shè)置:include_path = "c:/php",并將debug.php放在此文件夾,
以后就可以在每個網(wǎng)頁里包含此文件,查看得到的變量名和值.
3:如何使用session
凡是與session有關(guān)的,之前必須調(diào)用函數(shù)session_start();
為session付值很簡單,如
| <?php Session_start(); $Name = "這是一個Session例子"; Session_Register("Name");//注意,不要寫成:Session_Register("$Name"); Echo $_SESSION["Name"]; //之后$_SESSION["Name"]為"這是一個Session例子" ?> |
在php4.2之后,可以為session直接付值:
| <?PHP Session_Start(); $_SESSION["name"]="value"; ?> |
取消session可以這樣:
| <?php session_start(); session_unset(); session_destroy(); ?> |
取消某個session變量在php4.2以上還有BUG.取消某個session變量在php4.2以上還有BUG.
注意: 分享:php4和php5單態(tài)模式(Singleton Pattern)寫法單態(tài)模式(Singleton Pattern) 就是一個類Class只有一個實例存在。(Ensure a class only has one instance, and provide a global point of access to it.)
這個是php5的寫法。
1:在調(diào)用Session_Start()之前不能有任何輸出.例如下面是錯誤的.
==========================================
1行
2行 <?PHP
3行 Session_Start();//之前在第一行已經(jīng)有輸出
4行 .....
5行 ?>
==========================================
提示1:
凡是出現(xiàn)"........headers already sent..........",就是Session_Start()之前向瀏覽器輸出信息.
去掉輸出就正常,(COOKIE也會出現(xiàn)這種錯誤,錯誤原因一樣)
提示2:
如果你的Session_Start()放在循環(huán)語句里,并且很難確定之前哪里向瀏覽器輸出信息,可以用下面這種方法:
1行 <?PHP Ob_Start(); ?>
........這里是你的程序......
2:這是什么錯誤
Warning: session_start(): open(/tmp\sess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) failed:....
因為你沒有指定session文件的存放路徑.
解決方法:
(1)在c盤建立文件夾tmp
(2)打開php.ini,找到session.save_path,修改為session.save_path= "c:/tmp"
- 相關(guān)鏈接:
- 教程說明:
PHP教程-Php常見問題總結(jié)
。