隨筆 - 50  文章 - 0  trackbacks - 0
          <2010年7月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章檔案

          相冊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          1. CI中的controller都應當小寫。剛開始為了區分單詞,把第二個單詞大寫了,結果就是不認default_controller。事實證明這是錯誤的。放到linux下面就不靈了,應該全部小寫,如果你大寫了,CI會認為這是libraries里面的東西。不管怎樣都應該全部小寫,至少可以避免linux下區分大小寫的問題。

           

          2. 分頁的問題。CI的官方論壇下提供了一些源代碼,怎樣寫分頁函數我就不多說了,可以直接看高手的。關鍵是傳遞頁面參數的時候,不要忘了修改segment。一開始怎么傳都不對,后來才想起來我的網址已經是localhost/codeigniter/aaa/bbb/3/10了,這樣segment也要相應改變。分頁參數在第幾個/后,他就是uri->segment(幾)。如果是搜索之后的分頁,那么$config['total_rows']就不是count_all了,而是加入where之后的query的記錄數。想起來倒是有一個問題還沒解決,就是在你點search之后,一般需要用JS把網址轉換成CI固有的模式,但是怎樣使這個js生成的網址包含到site_url中,我沒有解決,只能手工了(仔細想想還是挺簡單的呵呵,自己造網址不用site_url)。

           

          3. MVC模式我已經比較適應了。將頁面都放在view中,控制語句放在controller中,而函數放在model中。剛開始有很多人和我一樣想要在view或者control中加一些語句,只能說,不行,也不規范。最好的辦法是寫成helper,如果是數據庫的二次調用的話,可以用inner join合并。

           

          4. htaccess的問題。很多人肯定和我一樣,一開始接觸的時候就是感興趣怎樣可以去掉index.php。雖然網上已經泛濫了,但是我再寫一次吧。其實就兩個工作,第一,在根目錄寫一個.htaccess的文檔,第二,開啟apache中的rewrite模塊。

          1)htaccess的寫法很多。這是基于你對CI各層目錄的安排決定的。我的安排:除了application中的內容外。將其他所有東西放在根目錄下的www目錄下,其中圖片放在www/images/下,flash放在www/flash/下,xml放在www/xml下,js放在www/js下。。。。總之全堆在www里面。所有views在title下面加上<base href="<?=base_url()?>" />這句話,系統就能識別你的根目錄了,所有鏈接改成site_url()就可以保證路徑不會出錯了。于是,我的htaccess是這樣的:

          RewriteEngine on  

          RewriteCond $1 !^(index\.php|www|uploadfiles|robots\.txt)  

          RewriteRule ^(.*)$ /index.php/$1 [L] [L]

          第一行是將rewrite打開,第二行是不rewrite的例外,包括index.php本身,www目錄,uploadfiles(這個參見5),還有robots搜索,第三行自然就是將index.php隱藏的rewrite規則了,即剩下的網址由于原來都是localhost/codeigniter/index.php/aaa/bbb的模式,現在可以去掉index.php了。而www下的網址不涉及index.php,用不到這個規則,所以要排除。

          2)首先找到apache下面的http.conf,路徑是apache的conf目錄下。找到這一行:LoadModule rewrite_module modules/mod_rewrite.so,將前面的#去掉,也就是說開啟這個module。另外需要找到rewrite的目錄行,將AllowOverride設置為All,其實就是roadmodule下面的那個directory.

              # AllowOverride controls what directives may be placed in .htaccess files.
              # It can be "All", "None", or any combination of the keywords:
              #   Options FileInfo AuthConfig Limit
              #
              AllowOverride All

          3)在CI的config目錄下的config.php中,將$config['index_page'] = "index.php"改為$config['index_page'] = “”,這樣就大功告成啦!!不用輸入index.php也可以訪問了。其實更關鍵的是你的各個目錄的路徑安排。

          5.FCKEditor的問題。應該說我在應用的時候沒有遇到任何麻煩,除了上傳時候的路徑讓我一頓好找。我覺得設置成根目錄下的/uploadfiles是不錯的選擇,當然別忘了在htaccess中把uploadfiles也放在不rewrite的隊伍中。因為我現在的習慣是所有的文件編碼都設置成utf-8,所以網上經常說的亂碼的現象沒有遇到。

          基本上就是這些基本的問題了,我做的其實就是簡單的企業網站,沒有高級應用,所以也沒有遇到更復雜的問題。等考完GT可以嘗試做一個更復雜的網站,和AJAX結合后再寫一些心得。下次要再做這樣的CMS,后臺直接搞定,省了不少時間。而且對于我這樣的PHP爛人來說,CI幫我解決了很多安全問題,同時也提高了效率。

          有點過度興奮了,寫得超級亂,我自己都不愿意回過頭去細細檢查了,具體問題可以再聯系我,只要我能解答。最后上傳一個驗證碼的helper吧,版權歸CI論壇上的同學所有,我只是轉一下,順便寫一下用法。。。

          點擊下載此文件

          1)首先在controller中引用getcode_helper.php, $this->load->helper('getcode');

          建立一個function比如

          Php代碼 
          1. function createcode()  
          2. {  
          3.     code();  
          4. }  

           

          2)驗證碼圖片鏈接地址:<img id="codeimage" src="<?=site_url('controller路徑/createcode')?>

          3)表單提交時驗證函數:

          Php代碼 
          1. function seccode_check($str)  
          2. {  
          3.     if(chk_code($str))  
          4.     {  
          5.         return TRUE;  
          6.     }  
          7.     else  
          8.     {   
          9.         return FALSE;  
          10.     }  
          11. }  

           


          posted on 2010-07-02 11:53 justjavac(迷渡) 閱讀(233) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 郁南县| 安新县| 延吉市| 宿州市| 乐至县| 无极县| 招远市| 仙居县| 高台县| 长汀县| 巩留县| 永嘉县| 开阳县| 社会| 响水县| 南康市| 新安县| 禹城市| 勃利县| 静安区| 平遥县| 宁蒗| 五原县| 印江| 万宁市| 嵊州市| 同德县| 彩票| 宁国市| 富宁县| 密山市| 潢川县| 科尔| 郑州市| 望谟县| 油尖旺区| 栖霞市| 汨罗市| 平果县| 洛扎县| 陇西县|