PHP和MYSQL制作動態網站開發經驗之談_PHP教程

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

      推薦:常見php頁面漏洞分析及相關問題解決
      從現在的網絡安全來看,大家最關注和接觸最多的WEB頁面漏洞應該是ASP了,在這方面,小竹是專家,我沒發言權。然而在PHP方面來看,也同樣存在很嚴重的安全問題,但是這方面的文章卻不多。在這里

      一. 10個經驗

      1.不要依賴register_global=ON的環境,從你剛懂得配置php運行環境甚至尚不明白register_global的ON/OFF會對自己有什么影響的那天起,就應該勇敢地把它設為OFF。

      2.寫程序前看看怎么用error_reporting。

      3.不懂就問本身沒錯,但你需要在那之前查查手冊。

      4.當然,你需要懂得使用手冊。手冊上找不到答案的時候,應該考慮下網絡上的搜索引擎。

      5.剛學會php mysql之后,不要叫嚷著要寫論壇,要寫XXX。要明白,剛學會寫漢字并不表示你有能力寫詩。

      6.在學web編程的時候,你應該先去認識html這個朋友。

      7.有點能力后,試著回答新手的問題,不要看到自己懂的而別人不懂就沾沾自喜,扔下一名“簡單,那是基本的東西”就走更要不得。

      8.思考是一個好習慣,不動手去寫就等于空想,什么也沒有。

      9.寫好一段程序,如果覺得很滿意,一周后再看一遍,也許你會認為它應該有所改變

      10.有空多看看別人的程序,找出他人的不足或優點,自己掂量。

      二. 各取所需

      1.善于使用“引用”,它能直接影響到程序的效率。

      2.善于用三元運算子,可以讓程式較精簡有效率。

      比如:

      以下為引用的內容:

      if ($data[$i][’nickname’])
      {
      $nickname = $data[$i][’nickname’];
      }
      else
      {
      $nickname = $data[$i][’ip’];
      }

      可以寫成:

      以下為引用的內容:

      $nickname = $data[$i][’nickname’] ? $data[$i][’nickname’] : $data[$i][’ip’];

      3.善于組織if...else...

      比如:

      以下為引用的內容:

      $ext_name = strtolower(str_replace(".", "", strrchr($upfilename, ".")));
      if (!empty($type))
      {
      if (!strpos($type, $ext_name))
      {
      echo "Please upload the file of $type form.";
      exit();
      }
      }

      上面的代碼你應該寫成這樣:

      以下為引用的內容:

      $ext_name = strtolower(str_replace(".", "", strrchr($upfilename, ".")));
      if (!($type===’’) && strpos($type, $ext_name)===false)
      {
      echo "Please upload the file of $type form.";
      exit();
      }

      4.盡量讓你的代碼清淅些

      如果寫成這樣,是比較讓人頭痛的:

      $foo=$_post["foo"];
      $username=$_post["user"];
      $group=$_POST["group"];
      if ($group=="wheel"){
      $username=$username."wheel";
      }

      同樣的代碼,這樣就比較讓人看得舒服了:

      以下為引用的內容:

      $foo = $_post["foo"];
      $username = $_post["username"];
      $group = $_POST["group"];
      if ($group=="wheel")
      {
      $username = $username."wheel";
      }

      當然,有一定基礎后,你應該要寫成這樣:

      以下為引用的內容:

      $foo = &$_POST[’foo’];
      $username = $_POST["group"]!=’wheel’ ? $_POST["username"] : $_POST["username"].’wheel’;

      5.編寫規范的mysql 語句。

      字段和表名用"`"引起來,避免保留字的影響。

      如果看到下面這樣的一個sql query,會讓人比較頭痛:

      以下為引用的內容:

      $query="select `flash_comment`.`content` , `flash_comment`.`nickname` , `flash_comment`.`date` , `flash_comment`.`ip` , `product`.`p_name` , `sgflash`.`fid` from `flash_comment` left join `product` on ( `flash_comment`.`p_no` = `product`.`p_no` ) left join `sgflash` on ( `product`.`p_name` = `sgflash`.`f_name` ) where `flash_comment`.`p_no` != ’’ order by `flash_comment`.`date`";

      同樣的一個query,寫成這樣就令人看得明白得多了:

      以下為引用的內容:

      $query = "SELECT `flash_comment`.`content` , `flash_comment`.`nickname` , `flash_comment`.`date` , `flash_comment`.`ip` , `product`.`p_name` , `sgflash`.`fid`
      FROM `flash_comment`
      LEFT JOIN `product` ON ( `flash_comment`.`p_no` = `product`.`p_no` )
      LEFT JOIN `sgflash` ON ( `product`.`p_name` = `sgflash`.`f_name` )
      WHERE `flash_comment`.`p_no` != ’’
      ORDER BY `flash_comment`.`date`";

      分享:實用:動態網頁制作技術PHP的十個應用技巧
      如何消滅或優化那PHP開發網站程序的代碼呢? 這一點上我個人最主要的經驗只有兩點,一是消除錯誤的或低效的循環;二是優化數據庫查詢語句。其實還存在一些其它的優化細節,比如“str_rep

      來源:模板無憂//所屬分類:PHP教程/更新時間:2008-08-22
      相關PHP教程