从单独的文件中对PHP错误或消息进行样式设置


Styling PHP errors or messages from a separate file

我有一个简单的登录表单和一个单独的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标记中的单独文件中,但它不起作用。

希望这有点道理。

非常感谢任何建议。

只需创建一个自定义配置文件

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'];
}

为会话中的错误存储提供索引。别忘了从头开始上课在两个文件中

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>

在一个页面中格式化所需的div,并在页面顶部执行include或required函数。将错误消息放在变量中,然后在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>