我有一个简单的登录表单和一个单独的php文件,其中包含错误消息功能等(即"密码字段为空"等)。
问题是当从表单触发错误时,它不会将错误消息设置为与表单相同。该错误在页面底部显示为未格式化。
我希望能够将表单CSS应用于单独文件中的php消息。
这是来自单独的PHP文件的代码片段:
// check login form contents
if (empty($_POST['user_name'])) {
$this->errors[] = "Username field was empty.";
} elseif (empty($_POST['user_password'])) {
$this->errors[] = "Password field was empty.";
我希望能够将这些错误消息放在表单的div元素中。目前,他们最终在页面底部没有格式化。
我试过将PHP封装在与表单相同的div标签中的单独文件中,但它不起作用。
希望这有一定道理。
任何建议都非常感谢。
答案 0 :(得分:1)
只需创建一个自定义配置文件
的config.php
$_SESSION['err_uname_req'] = "<font color='red'>Username Required</font>";
$_SESSION['err_pword_req'] = "<font color='red'>Password Required</font>";
...
以样本形式:
session_start();
//call config.php
if($_POST['username'] == "")//or any approach to display the error
{
echo $_SESSION['err_username_req'];
}
答案 1 :(得分:0)
为您的错误提供索引将它们存储在会话中。不要忘记在顶部开始会话 在两个文件中
if (empty($_POST['user_name'])) {
$this->errors['user_name'] = "Username field was empty.";
$this->_SESSION['first']=$this->errors['user_name'];
} elseif (empty($_POST['user_password'])) {
$this->errors['user_password'] = "Password field was empty.";
$this->_SESSION['second']=$this->errors['user_password'];
在另一个档案中
session_start();//start the session
<div id="first_error">$_SESSION['first']</div>
<div id="second_error">$_SESSION['second']</div>
答案 2 :(得分:0)
在一个页面中格式化所需的div,并在页面顶部执行包含或必需的功能。将错误消息放在变量中,然后回显div中的变量。您不需要会话来执行此操作,事实上,您必须创建全局变量以从if语句中获取其数据。例如。
首页。
global $errorname;
global $errorpass;
if(empty($_POST['user_name'])) {
$this->errors['user_name'] = "Username field was empty.";
$errorname = $this->errors['user_name'];
}
elseif(empty($_POST['user_password'])){
$this->errors['password'] = "Password field was empty.";
$errorpass = $this->errors['password']
}
第二页
<?php include('page1.php'); ?>
<div id="first_error"><?php echo $errorname; ?></div>