Codeigniter $ this-> lang-> line(errors)没有用于tank auth错误消息的段落标记

Swi*_*ftD 2 php codeigniter tankauth

我想知道是否有人可以帮助我.我目前正在尝试将tank auth集成到我的codeigniter网站中.我正慢慢地到达那里但是遇到了一个小绊脚石,因为当我将错误消息从html视图的一部分显示为javascript警告时,他们仍然会在错误消息周围打印出段落标记.

我认为作为数组/或多维数组传递给我的登录表单的错误消息是由控制器通过以下代码行生成的:

$data['errors'] = array();
foreach ($errors as $k => $v)   $data['errors'][$k] = $this->lang->line($v);
Run Code Online (Sandbox Code Playgroud)

这是我显示错误消息的代码:

if ((isset($errors[$login['name']]))||(isset($errors[$password['name']]))||(form_error($login['name']))||(form_error($password['name']))){
        echo'<script type="text/javascript">alert("';
}
echo form_error($login['name']);
echo isset($errors[$login['name']])?$errors[$login['name']]:'';
echo form_error($password['name']); 
echo isset($errors[$password['name']])?$errors[$password['name']]:'';
if ((isset($errors[$login['name']]))||(isset($errors[$password['name']]))||(form_error($login['name']))||(form_error($password['name']))){
        echo'")</script>';
}
Run Code Online (Sandbox Code Playgroud)

现在我的主要问题是如何删除paragreaph标签和我在codeigniter文档中找到了一个线索:http://codeigniter.com/user_guide/libraries/file_uploading.html这里的 关键部分是它说你可以设置执行此操作的上传脚本错误的分隔符:

$this->upload->display_errors('<p>', '</p>');
Run Code Online (Sandbox Code Playgroud)

但我不知道如何以及在何处将此应用于坦克认证.

我还有第二个问题,我会感谢能够回答的任何人,我对显示错误消息的代码感到有些困惑.例如:

echo form_error($password['name'])
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释一下,它一开始没有$所以它不是一个变量所以它是什么意思,我真正想要的是如何简化我的逻辑来检查错误消息,因为它目前令人难以置信的长时间啰嗦,并且有很多错误消息需要处理.

我很欣赏这里有很多事要处理,但任何帮助/解释都会感激不尽.

Kem*_*lah 17

要删除包装错误消息的标记,您必须set_error_delimiters()使用2个空字符串作为参数调用Form Validation对象的方法.

$this->form_validation->set_error_delimiters('', '');
Run Code Online (Sandbox Code Playgroud)

更多相关信息:https://codeigniter.com/user_guide/libraries/form_validation.html#changing-the-error-delimiters

至于你的第二个问题,我不确定你究竟在问什么.它只是一个函数调用,其中调用的返回值将输出给用户.