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

时间:2014-10-13 01:09:55

标签: php html css formatting

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

希望这有一定道理。

任何建议都非常感谢。

3 个答案:

答案 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>