如何在codeigniter中传递表单操作

时间:2013-12-04 07:08:32

标签: php codeigniter

我在codeigniter中遇到了一个问题。

当我通过这样的表格时:

<form name ="register" action="home/register" method="post"> 
</form>

会产生错误:

  

找不到对象。

但是当我通过这样的表格时:

<form name ="register" action="index.php/home/register" method="post"> 
</form>

它对我来说非常有用。

我应该做些什么更改才能在不通过index.php的情况下工作?

5 个答案:

答案 0 :(得分:4)

修改项目根目录中的.htaccess文件。

RewriteEngine on
# Hide the application and system directories like Javascript and CSS
RewriteCond $1 !^(index\.php|[Javascript / CSS]|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

Here's the topic discussed on EllisLab Forum

答案 1 :(得分:1)

<form name ="register" action="<?php echo base_url()."home/register";?> method="post"> 
</form>

答案 2 :(得分:0)

如果要从URL中删除index.php,可以创建.htaccess文件(http://ellislab.com/codeigniter/user-guide/general/urls.html

  

默认情况下,index.php文件将包含在您的网址中:

     

example.com/index.php/news/article/my_article   您可以使用带有一些简单规则的.htaccess文件轻松删除此文件。这是一个例子&gt;这样一个文件,使用“否定”方法,其中除指定的&gt;之外的所有内容都被重定向。项目:

     

RewriteEngine on   RewriteCond $ 1!^(index.php | images | robots.txt)   RewriteRule ^(。*)$ /index.php/$1 [L]   在上面的示例中,除了index.php,images和robots.txt之外的任何HTTP请求都是   作为index.php文件的请求处理。

或者,有两种方法可以做到。

表单助手

CodeIgniter有一个内置的Form Helper来创建表单标签:form_open()。 http://ellislab.com/codeigniter/user-guide/helpers/form_helper.html

网址助手

CodeIgniter有一个内置的URL Helper来自动化URL路径:site_url()。 http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html

答案 3 :(得分:0)

在codeigniter中有一个名为site_url的辅助函数(“controller / action / arg1 /../ argn”)

对于你的情况,它应该是

<form name ="register" action="<?php echo site_url("home/register") ?>" method="post"> 
</form>

有关详细信息,请点击此链接

http://ellislab.com/codeigniter%20/user-guide/helpers/url_helper.html

答案 4 :(得分:0)

您可以像这样传递链接,并且它完全适用于我的代码

<form name ="register" action="<?php cho base_url()?>home/register" method="post"> </form>

记住必须在您的域或服务器地址中设置config base_url路径,并在htaccess中定义clear。

谢谢