codeigniter post html textarea

时间:2014-09-27 08:29:25

标签: php html codeigniter post textarea

当我尝试从我的textarea发布html时,变量值为空,form_validation显示输入是必需的错误消息......

我搜索解决方案而我没找到......

这是我的代码

<form accept-charset="utf-8" method="post" action="<?php echo base_url('send_message/validate'); ?>">

                    <?php

                    echo validation_errors();

                    echo form_dropdown('cat_name', $plan_cat);
                    ?>
                    <div>
                            <span><label>اسم الراسل باللغه الانجليزية</label></span>
                            <span><input name="from" type="text" class="textbox" value="<?php echo set_value('from'); ?>" /></span>
                        </div>
                    <div>
                            <span><label>العنوان</label></span>
                            <span><input name="subject" type="text" class="textbox" value="<?php echo set_value('subject'); ?>" /></span>
                        </div>
                        <div>
                            <span><label>الرساله</label></span>


                            <?php
                                /*
                                $options = array(
                                'name' => 'message',
                                'id' => 'elm1'
                                );

                                echo form_textarea($options);
                            */
                            ?>

                            <textarea name="message" id="elm1"><?php echo set_value('message'); ?></textarea>

                        </div>

                    <div>
                            <span><input type="submit" value="ارسل" /></span>
                      </div>


                    <?php

                echo form_close();


                ?>

这是我的控制器代码:

$this->load->library('form_validation');

        $this->form_validation->set_rules('from', 'الراسل', 'required|min_length[8]');
        $this->form_validation->set_rules('subject', 'عنوان الرساله', 'required|min_length[6]');
        $this->form_validation->set_rules('message', 'الرساله', 'trim|required|min_length[10]|xss_clean');


        if($this->form_validation->run() == false){


            $user_id = $this->session->userdata('user_id');

            $send = array(
            'title' => 'ارسل الرساله',
            'plan' => $this->user_plan->get_plan($user_id)
            );

            $this->load->library('parser');
            $this->parser->parse('header', $send);
            $this->parser->parse('send_message', $send);
            $this->parser->parse('footer', $send);


        }else{

            $user_id = $this->session->userdata('user_id');
            $plan_cat = $this->input->post('cat_name');
            $from = $this->input->post('from', true);
            $subject = $this->input->post('subject', true);
            $message = $this->input->post('message', true);

            $message = '<code>'.$message.'</code>';

我希望找到解决这个问题的方法:)

1 个答案:

答案 0 :(得分:0)

首先,在深入研究代码之前,我不得不说:使用base_url功能作为action属性是不好的。您必须以这种方式使用site_url:

echo site_url('send_message/validate');

原因支持:

第二个(重要的)。我看到你正在使用XSS过滤器(消息),这意味着你试图将非法内容放入textarea。尝试把其他任何东西都放好。

因此,请确保您的消息值不包含非法字符。