在PHP中的同一页面上打印验证消息

时间:2013-08-26 14:17:12

标签: php

您好,我有处理上传错误的功能。

function error($error, $location, $seconds = 5)
{
    header("Refresh: $seconds; URL=\"$location\"");
    echo 'Error :' . $error . ' Please correct before proceeding.';
    exit;
} 

由于此消息为echo,因此您知道该消息不会显示在同一页面中,您需要返回浏览器返回原始内容页面。

我想要的是验证消息显示在同一页面上,所以我尝试将代码更改为以下内容。

function error($error)
{
    $ErrMsg = 'Error :' . $error . ' Please correct before proceeding.';

} 

后来在表格的形式中,我有类似的事情来称呼按摩。

<td><?php if(!empty($ErrMsg)) echo $ErrMsg; ?></td>

然而,这种方法似乎没有给我提供我需要的解决方案,即在同一页面上打印验证消息。

有人可以帮忙吗?

感谢。

3 个答案:

答案 0 :(得分:0)

{代码之后if...之前添加echo,在}代码之后添加echo...

答案 1 :(得分:0)

您可以使用ajax调用错误函数并在页面上输出消息。

或者你可以设置一个$ _POST,$ _GET或$ _SESSION变量来将错误信息传递到下一页。

会话示例:

function error($error)
{
    $_SESSION['ErrMsg'] = 'Error :' . $error . ' Please correct before proceeding.';
} 

后来......

<td>
<?php if (!empty($_SESSION['ErrMsg'])) {
 echo $_SESSION['ErrMsg']; 
}?>
</td>

如果表单发布到同一页面上,您可以尝试以下内容:

function uploadValidation()
{
    $errorReason = '';
    // do validation here
    // if something goes wrong $errorReason = 'reason for error'

    if (!empty($errorReason)) {
        return 'Error :' . $errorReason . ' Please correct before proceeding.';
    } else {
        // success stuff
        // maybe return thanks message or redirect somewhere else?
        return 'You upload real good!';
    }
}

$validationMessage = uploadValidation();
?>

And later in the form in a table I have something like following to call the massage.

<td><?= $validationMessage ?></td>

答案 2 :(得分:0)

根据您的描述,实际上很难说出您要实现的目标。但试试这个:

<?php

function error($error) {
    return 'Error :' . $error . ' Please correct before proceeding.';
}

?>

然后:

<td><?php echo error('YOUR ERROR CODE') ?></td>