【问题标题】:Should I use CodeIgniter html or form helper class?我应该使用 CodeIgniter html 还是表单助手类?
【发布时间】:2012-02-29 07:45:36
【问题描述】:

使用这些类对性能或安全问题有好处吗,因为我们知道 HTML 应该是纯 HTML。
例如

<input type='text' .... />

优于

<?php
echo '<input type="text" .... />';
?>

那我们为什么要使用

echo form_input('username');

【问题讨论】:

  • 它是一个“帮手”,意味着它可以提供帮助。如果您不需要帮助,请自己完成工作,这是唯一的区别 :) 性能开销可以忽略不计

标签: php codeigniter codeigniter-form-helper


【解决方案1】:

Helper 函数只是为了方便而提供的,它们不是必须使用的。使用简单的 html 总是更好,因为使用 helper 肯定会在服务器上产生开销,另一方面,使用这些函数的优点是您的代码变得最小化,例如读取我从他们的文档中复制的这段文字

form_prep()

允许您安全地使用 HTML 和字符,例如其中的引号 形式元素而不打破形式。考虑这个例子:

$string = '这是一个包含“引用”文本的字符串。';

&lt;input type="text" name="myform" value="$string" /&gt;
以上 string 包含一组引号,它将导致表单中断。这 form_prep 函数将 HTML 转换为可以安全使用:

<input type="text" name="myform" value="<?php echo form_prep($string);?>" />

注意:如果您使用任何表单辅助函数 这个页面的表单值将被自动准备好,所以有 无需调用此函数。仅当您正在创建您的 自己的表单元素。

【讨论】:

    【解决方案2】:

    这实际上并不是更好或性能的问题,而是您真正需要对表单做什么的问题,尤其是动态数据。

    例如,如果您使用:

    <input type="text" name="username" value="<?php echo $username; ?>" />
    

    要从验证中输入默认值或生成值,这样做更容易:

    echo form_input('username', $username);
    

    例如也使用:

    echo form_open('email/send');
    

    将为您的控制器生成正确的链接/路径,因此如果您移动或更改应用程序目录,您不必担心它,因为它会放置正确的值:

    <form method="post" accept-charset="utf-8" action="http:/example.com/index.php/email/send" />
    

    等等等等……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-31
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多