注入PHP生成的HTML

时间:2014-02-09 09:29:31

标签: php html

对于你们中的一些人来说,这可能是一个简单的问题,但我一直在调查它,并且找不到答案。我有一个简单的登录表单/脚本,具有以下结构;

<?php
PHP code here to check for token (if true) and then check the db for username and password
if the token is false display error message
?>

<HTML>
HTML logon form here that sets the token
</HTML>

现在如果登录有问题,即密码不正确,php会输出错误信息,麻烦的是它会回显表单顶部的输出。我希望能够将其插入表单的另一个点。我有一个模糊的想法,我可以用{logon_error}之类的东西将其注入html,但我不知道调用了什么方法或如何使用它。

4 个答案:

答案 0 :(得分:2)

您可以将错误消息存储在php变量中,例如$error_msg = "Error! ... ";

并在html页面中随处显示:

<html>
...
   <body>
    ...
    <span><?= $error_msg; ?>
   </body>
</html>

答案 1 :(得分:1)

将错误消息存储在变量中,然后再使用它。

这是一个帮助您理解的工作示例:

<?php

if (isset($_POST['FormSubmit'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    if ($username === 'admin' && $password === 'hunter2') {
        # success
    } else {
        $error = 'Invalid credentials';
    }
}
?>

<html>
    <div id="errorContainer">
        <?php echo (isset($error)) ? $error : ''; ?>
    </div>
    <form action="" method="post">
        Username: <input type="text" name="username" /> <br />
        Password: <input type="text" name="password" /> <br />
        <input type="submit" name="FormSubmit" value="Submit!" />
    </form>
</html>

如果您有多个检查,并希望输出不同的错误消息,那么您可以将错误消息存储在数组中。您的验证码应如下所示:

if (condition) {
    $error[] = '...'
}
elseif (condition) {
    $error[] = '...'
}
else (condition) {
    $error[] = '...'
}

然后,要在HTML中输出它,您可以使用替代语法的foreach构造:

<div id="errorContainer">
    <?php foreach($errors as $error): ?>
        <p class="error-content">
            <?php echo $error; ?>
        </p>
    <?php endforeach; ?>
</div>

请注意,这是一个非常基本的示例,仅用于演示目的。 永远不会信任用户输入。您的原始表单应包含所有必要的验证,并且不应只是几个if语句。

答案 2 :(得分:0)

您必须将消息存储在会话中或查看https://github.com/plasticbrain/PHP-Flash-Messages

主要想法是$ error_mesage ='你的错误消息在这里';

loadView('your-view')->with($error_message);

这很简单,如果您提供有关您正在使用的框架的更多信息,我们可以为您提供进一步的帮助。

答案 3 :(得分:0)

你可以这样做:

<强> PHP

if ($_SERVER["REQUEST_METHOD"] == "POST")
{

   if (empty($_POST["username"]))
     {$userErr = "Username is required";}
}

<强> HTML

<span class="error">* <?php echo $userErr;?></span>

您可以使用php中的<?php echo ""; ?> html 上调用它来执行任何操作。