如何制作一个提交给自己的PHP表单?

2022-08-30 09:57:51

我如何制作一个自我发布/自我提交的表格,即一个将结果提交给自己的表格,而不是提交到另一个表格?


答案 1

正确的方法是使用(与避免可能的漏洞利用结合使用)。您也可以跳过空部分,该部分不是W3C有效的,但目前适用于大多数(所有?)浏览器 - 如果它是空的,则默认为提交到self。$_SERVER["PHP_SELF"]htmlspecialcharsaction=

下面是一个示例表单,它采用名称和电子邮件,然后显示您在提交时输入的值:

<?php if (!empty($_POST)): ?>
    Welcome, <?php echo htmlspecialchars($_POST["name"]); ?>!<br>
    Your email is <?php echo htmlspecialchars($_POST["email"]); ?>.<br>
<?php else: ?>
    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
        Name: <input type="text" name="name"><br>
        Email: <input type="text" name="email"><br>
        <input type="submit">
    </form>
<?php endif; ?>

答案 2

我猜,你的意思是.如果是这样,你真的不应该在没有先消毒它的情况下使用它。这使您容易受到XSS攻击。$_SERVER['PHP_SELF']

条件应该高于所有HTML输出,并且应该包含一个函数,再次重定向到当前页面(只是现在,有一些很好的通知,“电子邮件已发送”......或其他东西)。为此,您将不得不使用 或 .if(isset($_POST['submit']))header()$_SESSION$_COOKIE

请。停止使用 。它也构成安全威胁。$_REQUEST


推荐