Php高手帶路--問題匯總解答_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:十天學會php之第十天
        文本關鍵字:程序設計/PHP/技巧   學習目的:學會用PHP上傳文件和發郵件   上傳文件表單必須加上 enctype="multipart/form-data" 和 <input type="file" na

        1:為什么我得不到變量

         我在一網頁向另一網頁POST數據name,為什么輸出$name時卻得不到任何值?

         在PHP4.2以后的版本中reGISter_global默認為off
         若想取得從另一頁面提交的變量:

         方法一:在PHP.ini中找到register_global,并把它設置為on.

         方法二:在接收網頁最前面放上這個extract($_POST);extract($_GET);(注意extract($_SESSION)前必須要有Session_Start()).

         方法三:一個一個讀取變量$a=$_GET["a"];$b=$_POST["b"]等,這種方法雖然麻煩,但比較安全.

         2:調試你的程序

         在運行時必須知道某個變量為何值。我是這樣做的,建立一文件debug.php,其內容如下:

         PHP代碼:

         <?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中設置:include_path = "c:/php",并將debug.php放在此文件夾,以后就可以在每個網頁里包含此文件,查看得到的變量名和值.

         3:如何使用session

         凡是與session有關的,之前必須調用函數session_start();

         為session付值很簡單,如:

         PHP代碼:

         <?php
         Session_start();
         $Name = "這是一個Session例子";
         Session_Register("Name");//注意,不要寫成:Session_Register("$Name");
         Echo $_SESSION["Name"];
         //之后$_SESSION["Name"]為"這是一個Session例子"
         ?>

         在php4.2之后,可以為session直接付值:

         PHP代碼:

         <?PHP
         Session_Start();
         $_SESSION["name"]="value";
         ?>

         取消session可以這樣:
      PHP代碼:

         <?php
         session_start();
         session_unset();
         session_destroy();
         ?>

         取消某個session變量在php4.2以上還有BUG.

         注意:

         1:在調用Session_Start()之前不能有任何輸出.例如下面是錯誤的.
         ==========================================
         1行
         2行 3行 Session_Start();//之前在第一行已經有輸出
         4行 .....
         5行 ?>
         ==========================================

         提示1:

         凡是出現" ........headers already sent.......... ",就是Session_Start()之前向瀏覽器輸出信息.去掉輸出就正常,(COOKIE也會出現這種錯誤,錯誤原因一樣)

         提示2:

         如果你的Session_Start()放在循環語句里,并且很難確定之前哪里向瀏覽器輸出信息,可以用下面這種方法:
         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"

      分享:十天學會php之第九天
        文本關鍵字:程序設計/PHP/技巧   學習目的:注意事項   因為我是先學ASP的,所以再做PHP的時候會發現很多地方需要適應。   1、注意不要漏了分號   2、注意不要漏了變量前

      共4頁上一頁1234下一頁
      來源:模板無憂//所屬分類:PHP教程/更新時間:2008-08-22
      相關PHP教程