我使用以下验证规则将一个简单的表单添加到我的数据库中。 “表单”在 autoload.php 中。
每当任何验证规则被破坏时,页面都不会显示错误输出,当没有任何规则被破坏时,表单会按预期进行。
这是我的 Controller 函数
public function add()
{
$this->load->library('form_validation');
$this->load->library('layout');
// field name, error message, validation rules
$this->form_validation->set_rules('type', 'Type', 'required|xss_clean');
$this->form_validation->set_rules('title_type', 'Title type', 'required|xss_clean');
$this->form_validation->set_rules('first_name', 'First name', 'trim|required|min_length[1]|max_length[150]|xss_clean');
$this->form_validation->set_rules('surname', 'Surname', 'trim|required|min_length[1]|max_length[150]|xss_clean');
$this->form_validation->set_rules('job_title', 'Job title', 'trim|min_length[5]|max_length[300]required|xss_clean');
$this->form_validation->set_rules('office_number', 'Office number', 'trim|min_length[2]|max_length[11]|xss_clean');
$this->form_validation->set_rules('telephone', 'Telephone', 'trim|numeric|xss_clean');
$this->form_validation->set_rules('email', 'Email', 'trim|valid_email|xss_clean');
$this->form_validation->set_rules('website', 'Website', 'trim|prep_url|xss_clean');
$this->form_validation->set_rules('background', 'Background', 'trim|xss_clean');
$data = array(
'title' => 'Add staff member'
);
if ($this->form_validation->run() == FALSE) { //Was errors
$this->session->set_flashdata('message','You missed some details, please try again.');
$this->layout->load('default', 'add_person', $data);
} else {
$this->people_model->add_person();
$this->layout->load('default', 'added_person', $data);
}
} //add
在我的表单 View 中我有
<?php echo validation_errors('<p class="msg msg-error">') ?>
谁能看出我做错了什么,我已经尝试了所有我能想到的。
validation_errors() 的 var_dump 给出
string '' (length=0)
编辑:奇怪的是,如果我交换这两行,我会得到:
$this->load->library('form_validation');
$this->load->library('layout'); //lib code http://pastebin.com/K1rBV512
Message: Undefined property: People::$form_validation
Filename: controllers/people.php
Line Number: 27
最佳答案
您需要将 $data
数组传递给您的模型。所有输入都需要从 VIEW
页面获取 POST
。您没有显示任何具体错误,因此很难诊断您的问题。
确保您在MODEL
中POST
所有输入:
`'first_name' => $this->input->post('first_name'),`
在您的 View
中:
<?php echo validation_errors('<p class="msg msg-error">') ?>
在您的 View
中将其更改为:
<p class="msg msg-error"><?php echo validation_errors(); ?></p>
关于php - Codeigniter validation_errors() 总是返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13013794/
我有这个字段由curl_exec返回:<inputname="NUMBER_R"type="hidden"value="1500000">150000是一个随机数,可能会变,其他都是常量我试过:preg_match('/<inputname="NUMBER_R"type="hidden"value="([^"]*)"\/>/',$result,$number)还有:preg_match('/<inputname=\'NUM
登录后Opencart登录到上一个查看的页面?有人知道如何做到这一点吗?正在处理1.5.4版本希望有人能提供建议/帮助!谢谢! 最佳答案 要实现这个场景:用户点击登录链接。用户填写登录表单并点击提交按钮。在他登录后,您希望他重定向到他点击“登录”链接的页面。您必须编辑catalog/controller/account/login.phpcontroller。在publicfunctionindex(){行之后添加:if(!isset($this->session->data['login_redirect
所以我一直在玩Joomla3和Bootstrap。起初我不完全理解他们将Bootstrap嵌入到CMS中是什么意思-看起来你可以调用它但必须使用Javascript或模板覆盖来匹配预期的输出。并不比手动调用Bootstrap框架方便多少。然后我发现了一些关于libraries/cms/html/bootstrap.php的链接-非常高兴:http://doc.joomladev.eu/api3/Joomla-Libraries/HTML/JHtmlBootstrap.html;https://groups.google.com/group/joomla-dev-cms/browse_t
我在使用LDAP库和ActiveDirectory时遇到了一些问题。由于AD的限制,如果参数将返回超过1000个结果,我将无法使用LDAP库进行搜索。此外,似乎没有办法使用ZF2LDAP库对结果进行分页。我知道如何分页,但我宁愿使用ZF2内置方法(如果存在的话)。我是否遗漏了什么,或者我是否必须创建自己的方法来实现这一点?附言我查看了手册和代码,但看不到任何实现此目的的方法。 最佳答案 这就是我为解决这个问题所做的/***AnLDAPsearchroutineforfindinginformationandreturningpagi
谁能告诉我如何从http更改为htpps?我的域名有SSL。我曾经在根目录中创建文件.htaccess,但它根本不起作用。这是.htaccess的代码RewriteEngineOnRewriteCond%{HTTPS}offRewriteRule^(.*)$https://mysite.com/$1[R=301,L]请帮助,提前致谢。 最佳答案 对于直接访问,这似乎是要走的路:RewriteEngineon#rewritetoHTTPSRewriteCond${HTTPS}!onRewriteRule^/?(.*)https://%
假设我有stamp.pdf或stamp.html和original.pdf。stamp.pdf(stamp.html)包含一个图章,我想将stamp.pdf放在original.pdf上在某个位置并生成一个新的pdf-original_stamped.pdf我想将stamp.pdf作为pdf(矢量图形)或html插入,但不转换为光栅图像,然后插入到original_stamped.pdf我说的是加盖戳记或水印(在页面上),而不仅仅是向pdf添加额外的页面。有什么想法吗?谢谢! 最佳答案 答案是这样的:$pdf=newFPDI();$
我使用以下正则表达式来验证用户名(注册表单中的输入类型文本),以确保用户名仅包含字母数字字符、点、破折号或下划线。if(!preg_match('/^[a-zA-Z0-9\.\_-]+$/',$my_name)){echo'no_valid';}当我在文本字段中键入例如%或#或@时,我会正确返回错误消息,指出它不是有效的用户名,并且有效字符(.-_)也被接受,所以它似乎工作正常,直到当我输入&或+时,我就可以输入之前使用preg_match排除的任何无效字符。谁能告诉我为什么会这样,我该如何解决这个问题? 最佳答案
在PHP中,我试图创建一个没有成功的正则表达式,它应该匹配由数字和单个“结束”字符组成的表达式,只有数字前面没有F。这是一个要匹配的示例字符串$test="123A456C789XF765S333333AF444G";和下面的正则表达式preg_match_all("/(?<!F)(\d+)([ASTCGX])+/",$test,$matches)找到以下表达式:123A456C789X65S33333A44G虽然我期望只有以下匹配:123A456C789X333333A我不想将数字\d+分开以匹配正则表达式。像F\d+[ACXSG]+这样的表达式
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我刚刚开始使用类,而不再使用过程式编程。但是我在前进的过程中有一些疑问。1-正如我在标题中所写,我应该开发多少类?到目前为止,我已经为站点的注册/登录部分开发了以下类:数据访问层(几乎每个类都会调用)注册(验证表格并发送包含激活码的电子邮件)用户登录激活(检查代码/发送带有新代码的新电子邮件)通过恢复(检查恢复代码/发送带有新代码的新电子邮件/处理新密码表
http://www.bank.lv/vk/xml.xml?date=20130530$url='http://www.bank.lv/vk/xml.xml?date=20130530';$xml=simplexml_load_file($url)ordie("feednotloading");$Rate=$xml->Currency[1]->Rate;echo$Rate;echo'BREAKHTML';echo"-----";echo"//";var_dump($xml);echo"/
我有这个字段由curl_exec返回:<inputname="NUMBER_R"type="hidden"value="1500000">150000是一个随机数,可能会变,其他都是常量我试过:preg_match('/<inputname="NUMBER_R"type="hidden"value="([^"]*)"\/>/',$result,$number)还有:preg_match('/<inputname=\'NUM
登录后Opencart登录到上一个查看的页面?有人知道如何做到这一点吗?正在处理1.5.4版本希望有人能提供建议/帮助!谢谢! 最佳答案 要实现这个场景:用户点击登录链接。用户填写登录表单并点击提交按钮。在他登录后,您希望他重定向到他点击“登录”链接的页面。您必须编辑catalog/controller/account/login.phpcontroller。在publicfunctionindex(){行之后添加:if(!isset($this->session->data['login_redirect
所以我一直在玩Joomla3和Bootstrap。起初我不完全理解他们将Bootstrap嵌入到CMS中是什么意思-看起来你可以调用它但必须使用Javascript或模板覆盖来匹配预期的输出。并不比手动调用Bootstrap框架方便多少。然后我发现了一些关于libraries/cms/html/bootstrap.php的链接-非常高兴:http://doc.joomladev.eu/api3/Joomla-Libraries/HTML/JHtmlBootstrap.html;https://groups.google.com/group/joomla-dev-cms/browse_t
我在使用LDAP库和ActiveDirectory时遇到了一些问题。由于AD的限制,如果参数将返回超过1000个结果,我将无法使用LDAP库进行搜索。此外,似乎没有办法使用ZF2LDAP库对结果进行分页。我知道如何分页,但我宁愿使用ZF2内置方法(如果存在的话)。我是否遗漏了什么,或者我是否必须创建自己的方法来实现这一点?附言我查看了手册和代码,但看不到任何实现此目的的方法。 最佳答案 这就是我为解决这个问题所做的/***AnLDAPsearchroutineforfindinginformationandreturningpagi
谁能告诉我如何从http更改为htpps?我的域名有SSL。我曾经在根目录中创建文件.htaccess,但它根本不起作用。这是.htaccess的代码RewriteEngineOnRewriteCond%{HTTPS}offRewriteRule^(.*)$https://mysite.com/$1[R=301,L]请帮助,提前致谢。 最佳答案 对于直接访问,这似乎是要走的路:RewriteEngineon#rewritetoHTTPSRewriteCond${HTTPS}!onRewriteRule^/?(.*)https://%
假设我有stamp.pdf或stamp.html和original.pdf。stamp.pdf(stamp.html)包含一个图章,我想将stamp.pdf放在original.pdf上在某个位置并生成一个新的pdf-original_stamped.pdf我想将stamp.pdf作为pdf(矢量图形)或html插入,但不转换为光栅图像,然后插入到original_stamped.pdf我说的是加盖戳记或水印(在页面上),而不仅仅是向pdf添加额外的页面。有什么想法吗?谢谢! 最佳答案 答案是这样的:$pdf=newFPDI();$
我使用以下正则表达式来验证用户名(注册表单中的输入类型文本),以确保用户名仅包含字母数字字符、点、破折号或下划线。if(!preg_match('/^[a-zA-Z0-9\.\_-]+$/',$my_name)){echo'no_valid';}当我在文本字段中键入例如%或#或@时,我会正确返回错误消息,指出它不是有效的用户名,并且有效字符(.-_)也被接受,所以它似乎工作正常,直到当我输入&或+时,我就可以输入之前使用preg_match排除的任何无效字符。谁能告诉我为什么会这样,我该如何解决这个问题? 最佳答案
在PHP中,我试图创建一个没有成功的正则表达式,它应该匹配由数字和单个“结束”字符组成的表达式,只有数字前面没有F。这是一个要匹配的示例字符串$test="123A456C789XF765S333333AF444G";和下面的正则表达式preg_match_all("/(?<!F)(\d+)([ASTCGX])+/",$test,$matches)找到以下表达式:123A456C789X65S33333A44G虽然我期望只有以下匹配:123A456C789X333333A我不想将数字\d+分开以匹配正则表达式。像F\d+[ACXSG]+这样的表达式
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我刚刚开始使用类,而不再使用过程式编程。但是我在前进的过程中有一些疑问。1-正如我在标题中所写,我应该开发多少类?到目前为止,我已经为站点的注册/登录部分开发了以下类:数据访问层(几乎每个类都会调用)注册(验证表格并发送包含激活码的电子邮件)用户登录激活(检查代码/发送带有新代码的新电子邮件)通过恢复(检查恢复代码/发送带有新代码的新电子邮件/处理新密码表
http://www.bank.lv/vk/xml.xml?date=20130530$url='http://www.bank.lv/vk/xml.xml?date=20130530';$xml=simplexml_load_file($url)ordie("feednotloading");$Rate=$xml->Currency[1]->Rate;echo$Rate;echo'BREAKHTML';echo"-----";echo"//";var_dump($xml);echo"/