`

CodeIgniter应用中的若干备忘问题

阅读更多

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比如

function createcode()
{
    code();
}

 

2)验证码图片链接地址:<img id="codeimage" src="<?=site_url('controller路径/createcode')?>

3)表单提交时验证函数:

function seccode_check($str)
{
    if(chk_code($str))
    {
        return TRUE;
    }
    else
    { 
        return FALSE;
    }
}

 

分享到:
评论

相关推荐

    CodeIgniter3中文手册

    CodeIgniter 是一个用PHP编写的开源Web应用程序开发框架,它提供了一套工具包和类库,帮助开发者更快速地进行应用程序开发。CodeIgniter以其小巧、高性能、易于使用和配置、不需要命令行、无需新的模板语言、以及...

    CodeIgniter简体中文语言包

    CodeIgniter是一个轻量级、高性能的PHP框架,它被广泛用于快速开发高效、优雅的Web应用程序。...通过合理利用这个语言包,你可以更好地发挥CodeIgniter的潜力,开发出更加符合中文用户需求的Web应用。

    CodeIgniter 2.2.2 中文文档 CI2.2.2中文文档

    CodeIgniter 2.2.2 是一个流行的PHP框架,专为快速开发高效、优雅的Web应用程序而设计。CI(CodeIgniter)以其轻量级、高性能和丰富的库集著称,深受开发者喜爱。这份2.2.2版本的中文文档是针对这个特定版本的全面...

    CodeIgniter2.0中文手册.zip

    10. 用户指南:CodeIgniter的中文手册详尽地解释了每个组件的使用方法,包括实例代码和常见问题解答,是学习和开发过程中的得力助手。 11. 扩展性:通过钩子(Hooks)、插件(Plugins)和第三方库,开发者可以扩展...

    codeigniter中文手册教程

    CodeIgniter是一个流行的开源PHP...这份中文手册将帮助中国开发者更轻松地理解和应用CodeIgniter框架,从而提升开发效率和项目质量。通过深入学习和实践,你可以掌握CodeIgniter的精髓,打造功能丰富的PHP应用程序。

    CodeIgniter2.0中文手册

    CodeIgniter2.0中文手册

    codeigniter 2.0 中文手册

    1. **控制器(Controller)**:CodeIgniter中的控制器是应用程序的入口点,负责接收用户请求并调用模型和视图来处理数据和展示结果。控制器类是PHP类,它们扩展了CI_Controller基类,通过定义方法来处理不同的URL路由...

    CodeIgniter 1.72 中文帮助文档

    在CodeIgniter中,模型处理数据库交互,视图负责展示数据,控制器协调模型和视图的交互。 3. **路由与URL** CodeIgniter的URL友好看,支持自定义路由规则,可以轻松地将请求映射到相应的控制器方法。 4. **控制器...

    CodeIgniter2.0中文手册 CHM版

    8. **错误报告和日志**:如何设置错误报告级别,以及如何记录应用程序的日志,有助于调试和问题排查。 9. **安全与防护**:包括XSS过滤、SQL注入防护、CSRF保护等,确保应用程序的安全性。 10. **会话管理**:...

    CodeIgniter快速开发中文手册.zip

    在CodeIgniter中,模型处理数据,控制器协调数据流,而视图则负责展示数据。 接着,手册将详细讲解控制器(Controllers)的概念。控制器是CodeIgniter中的关键组件,它们接收HTTP请求,调用模型和库,然后将结果...

    CodeIgniter2.0 中文手册

    在CodeIgniter中,你可以创建自定义模型类来封装这些操作,以实现更高效的数据管理。 4. 视图(View):视图负责展示数据,通常包含HTML、CSS和JavaScript。开发者可以使用PHP代码在视图文件中嵌入动态数据,从而实现...

    PHP开发框架CodeIgniter中文参考资料

    3. **PHP敏捷开发框架CodeIgniter.chm**:这份文档可能侧重于介绍CodeIgniter在敏捷开发中的应用,强调快速原型构建和迭代开发的能力。它可能会涵盖框架的灵活性、可扩展性,以及如何利用其内置库和插件加速开发进程...

    CodeIgniter2.1.4中文手册HTML离线版

    6. **错误与日志**:框架内置了错误处理和日志记录机制,帮助开发者追踪和调试代码中的问题。 7. **辅助函数**:CodeIgniter提供了一系列预定义的辅助函数,涵盖字符串处理、URL生成、表单处理等多个方面,简化了...

    CodeIgniter 1.7.1中文手册

    敏捷php开发框架CodeIgniter 1.7.1中文手册

    CodeIgniter3.00中文手册pdf

    手册还专门讲解了CodeIgniter的常规主题,如项目结构、代码风格、安全性、维护等实际操作中经常遇到的问题,为开发者提供全面的指导。 此外,CodeIgniter鼓励开发者为框架做出贡献。如果用户希望贡献代码或文档,...

    CodeIgniter 中文手册1.6.3版本

    4. 错误处理与日志:CodeIgniter提供了错误报告和日志记录功能,帮助开发者追踪并解决程序运行中的问题。通过调整错误级别设置,可以在开发阶段获取详细的错误信息,而在生产环境中则可以生成日志文件。 5. 模板...

    CodeIgniter2.1.4中文手册

    CodeIgniter2.1.4中文手册 导航条在顶部,CodeIgniter最新版本手册

    CodeIgniter3.1.3 中文手册

    为了提高安全性,CodeIgniter还建议将系统文件和应用文件放在Web根目录之外,同时使用.htaccess文件阻止直接访问。 除了这些,CodeIgniter还有许多其他的特点。它是一个小巧的框架,性能出色,兼容性广泛,几乎不...

    CodeIgniter2.0中文手册.chm

    CodeIgniter2.0中文手册 CodeIgniter2.0中文手册.chm

    PHP CodeIgniter中文手册

    CI提供了错误报告和日志系统,便于开发者追踪和解决程序中的问题。此外,「Profiler」工具可以在页面底部显示执行时间、内存消耗等性能数据,帮助优化代码。 **9. 自动加载** CI支持自动加载类库、模型、库、助手...

Global site tag (gtag.js) - Google Analytics