【问题标题】:codeigniter post html textareacodeigniter 发布 html 文本区域
【发布时间】:2014-09-27 08:29:25
【问题描述】:

当我尝试从我的 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>';

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

【问题讨论】:

    标签: php html codeigniter post textarea


    【解决方案1】:

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

    echo site_url('send_message/validate');
    

    原因在于:

    第二个(也是重要的)。我看到您正在对(消息)使用 XSS 过滤器,这意味着您正试图将非法内容放入 textarea。试着放点别的一切都会好的。

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

    【讨论】:

    • 尝试提交所有字段,在字段上看到提交的值了吗?
    • 您能告诉我,您尝试在消息 textarea 上设置的值是多少?
    • 我猜 html 代码会停止一些查询,因为如果值不是 html,它可以正常工作
    • 这是源代码
      مفأجات شركة البق لأول مرة فى دول الخليج
    • 查看我答案的第二部分,我做了一些更改!
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签