对于你们中的一些人来说,这可能是一个简单的问题,但我一直在调查它,并且找不到答案。我有一个简单的登录表单/脚本,具有以下结构;
<?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,但我不知道调用了什么方法或如何使用它。
答案 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 上调用它来执行任何操作。