【问题标题】:codeigniter form set value?codeigniter 表单设置值?
【发布时间】:2011-09-01 10:07:45
【问题描述】:

我必须知道..

$this->form_validation->set_value('first_name')

一样
$this->input->post('first_name')

?

他们似乎都得到了输入值。如果我验证输入,第一个更安全吗?

【问题讨论】:

  • 我认为第二个比第一个更好..

标签: php forms codeigniter


【解决方案1】:

我想你指的是这个:

<input type="text" name="quantity" value="<?php echo set_value('quantity', '0'); ?>" size="50" />

在这种情况下,set_value 只是在验证错误时重新填充该字段。这个:

$this->input->post('first_name');

刚刚获得$_POSTfirst_name 值。

【讨论】:

    【解决方案2】:

    set_value() 用于在验证失败后重新填充表单。它没有额外的过滤,因此如果您不需要将值传递回表单,则应使用$this-&gt;input-&gt;post()

    【讨论】:

    • 我对输入进行了修剪,当我使用 set_value('email') 时,会修剪重新填充的字段。所以我不认为 set_value() 没有过滤效果。
    【解决方案3】:

    set_value() 如果在第二个参数中设置了一个默认值,则可以返回一个默认值,如果该字段未使用表单验证库验证,则不会返回任何内容,而$this-&gt;input-&gt;post() 将返回 $_POST 值,即使验证库未处理该字段。

    如果对输入运行了“准备”规则,这两个函数都将返回修改后的值。

    当你想读取一个帖子值时,只需使用$this-&gt;input-&gt;post()set_value() 类型的函数,如set_select()set_checkbox() 实际上会返回类似selected="selected" 的东西,而不是实际的输入值,所以这赢了不适用于复选框、单选和选择。

    【讨论】:

    • set_value() 对于数组 $_POST 值的行为也不同。简而言之 - 它用于重新填充表单,仅此而已。
    【解决方案4】:

    在之前的验证库中,validation-&gt;first_nameinput-&gt;post(‘first_name’) 可以互换,但新库不再更改 post 值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-19
      • 2015-07-12
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多