CodeIgniter,Smarty和Form Helper。提交时链接错误

时间:2013-05-18 13:04:14

标签: php codeigniter smarty

我使用CodeIgniter Form Helper和Smarty时遇到了问题。

我使用了这个(https://github.com/EllisLab/CodeIgniter/wiki/Form-helper-with-Smarty)表单助手函数。

现在我在Controller中有了addUser()函数

    public function addUser(){
        $this->load->helper('form');

        $this->form_validation->set_rules('username', 'Benutzername', 'trim|required|min_length[4]|xss_clean');
        $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
        $this->form_validation->set_rules('password', 'Passwort', 'trim|required|min_length[4]|max_length[32]');
        $this->form_validation->set_rules('con_password', 'Passwort bestätigen', 'trim|required|matches[password]');

        if($this->form_validation->run() == FALSE){
            echo "Error! User can not create";
        }else{
            $this->user_model->add_user();
            echo "Done!";
        }
        $this->smarty->display($this->tpl);
    }

以下.TPL我用过

    {form url='pageadmin/addUser'}
<p>
    <label for="username">User Name:</label>
    <input type="text" id="username" name="user_name" />
</p>
<p>
    <label for="email_address">Your Email:</label>
    <input type="text" id="email" name="email_address" />
</p>
<p>
    <label for="password">Password:</label>
    <input type="password" id="password" name="password" />
</p>
<p>
    <label for="con_password">Confirm Password:</label>
    <input type="password" id="con_password" name="con_password" />
</p>
<p>
    <input type="submit" value="Submit" />
</p>
{form}

但现在,当我尝试这个。我有两个问题。第一个是,当我调用函数addUser()时,显示消息“错误!用户无法创建”。第二个问题是,通过表单提交生成的网址就像这个“http://dev.url.de/admin/addUser/dev.url.de/pageadmin/addUser”。

非常感谢你,抱歉我的英语不好......

1 个答案:

答案 0 :(得分:0)

显然你的表格失败但是你没有回来为什么它失败了。如下所示更改您的代码,这将告诉您在哪里查找未通过验证的内容:

if($this->form_validation->run() == FALSE){
            echo validation_errors();
        }else{

验证错误会告诉您哪些规则是问题,然后您可以继续从那里进行故障排除。

至于URL只是因为相对URL,我不使用Smarty所以不确定如何使用base_url(),但以下“可能”工作

{form url=base_url().'pageadmin/addUser'}

如果这不起作用,应该:

{form url='../pageadmin/addUser'}