[英]Injecting HTML produced by PHP
對於您中的某些人來說,這可能是一個簡單的問題,但我在最后一個小時內一直在對其進行調查,但找不到答案。 我有一個簡單的登錄表單/腳本,其結構如下:
<?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中,但是我不知道調用了什么方法或如何使用它。
您可以將錯誤消息存儲在php變量中,例如$error_msg = "Error! ... ";
並在html頁面中顯示您想要的任何位置,如下所示:
<html>
...
<body>
...
<span><?= $error_msg; ?>
</body>
</html>
將錯誤消息存儲在變量中,然后使用。
這是一個工作示例,可以幫助您理解:
<?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
語句。
您必須將消息存儲在會話中,或者查看https://github.com/plasticbrain/PHP-Flash-Messages
主要思想是$ error_mesage ='您的錯誤消息在這里';
loadView('your-view')->with($error_message);
這很簡單,如果您提供有關您正在使用哪種框架的更多信息,我們可能會為您提供進一步的幫助。
您可以這樣:
PHP的 :
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (empty($_POST["username"]))
{$userErr = "Username is required";}
}
HTML :
<span class="error">* <?php echo $userErr;?></span>
您可以使用<?php echo ""; ?>
做任何您想做的事<?php echo ""; ?>
<?php echo ""; ?>
在php中調用它在html上 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.