我应该使用CodeIgniter html还是形成帮助类?

时间:2012-02-29 07:45:37

标签: php codeigniter codeigniter-form-helper

使用这些类对性能或安全性问题有好处,因为我们知道HTML应该是纯HTML格式 e.g。

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

优于

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

那我们为什么要使用

echo form_input('username');

2 个答案:

答案 0 :(得分:3)

提供帮助程序函数只是为了方便它们不需要使用它总是更好地使用简单的html,因为使用帮助程序肯定会在服务器上产生开销,另一方面使用这些函数的优点是你的代码变得缩小,例如读取我从他们的文档中复制的这段文字

  

form_prep()

     

允许您安全地使用HTML和字符,例如引号   形式元素没有突破形式。考虑这个例子:

     

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

     

<input type="text" name="myform" value="$string" />由于以上原因   string包含一组引号,它会导致表单中断。该   form_prep函数转换HTML以便安全使用:

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

注意:如果使用中列出的任何表单助手函数   此页面的表单值将自动准备,因此有   无需调用此功能。只有在创建时才使用它   自己的形式元素。

答案 1 :(得分: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" />

依此类推......