簡體   English   中英

注入PHP生成的HTML

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM