我想知道是否有人可以帮助我。我目前正在尝试将tank auth集成到我的codeigniter网站中。我正慢慢地到达那里,但遇到了一个小绊脚石,因为当我将错误消息从html视图的一部分显示为javascript警告时,他们仍然会在错误消息周围打印出段落标记。
我认为作为数组/或多维数组传递给我的登录表单的错误消息是由控制器通过以下代码行生成的:
$data['errors'] = array();
foreach ($errors as $k => $v) $data['errors'][$k] = $this->lang->line($v);
以下是我显示错误消息的代码:
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>';
}
现在我的主要问题是如何删除paragreaph标签和我在codeigniter文档中找到线索: http://codeigniter.com/user_guide/libraries/file_uploading.html 它们的关键部分是它表示你可以通过这样做设置上传脚本中错误的分界符:
$this->upload->display_errors('<p>', '</p>');
但我不知道如何以及在何处将此应用于坦克认证。
我还有第二个问题,我会感谢能够回答的任何人,我对显示错误消息的代码感到有些困惑。例如:
echo form_error($password['name'])
有人可以向我解释一下,它一开始就没有$所以它不是一个变量所以它是什么意思,而我真正想要的是如何在检查错误消息时简化我的逻辑,因为此刻令人难以置信的长篇大论,并且有很多错误信息需要处理。
我很欣赏这里有很多事情要处理,但任何帮助/解释都会感激不尽。
答案 0 :(得分:17)
要删除包装错误消息的标记,您必须使用2个空字符串作为参数调用Form Validation对象的set_error_delimiters()
方法。
$this->form_validation->set_error_delimiters('', '');
更多相关信息:https://codeigniter.com/user_guide/libraries/form_validation.html#changing-the-error-delimiters
至于你的第二个问题,我不确定你究竟在问什么。它只是一个函数调用,其中调用的返回值将输出给用户。