如何使用户无法使用 PHP 在表单中输入原始 HTML 代码? [复制]

Posted

技术标签:

【中文标题】如何使用户无法使用 PHP 在表单中输入原始 HTML 代码? [复制]【英文标题】:How Can I Make It So Users Cannot Enter Raw HTML Code In Forms Using PHP? [duplicate] 【发布时间】:2021-08-18 19:34:44 【问题描述】:

我正在尝试这样做,以便用户可以将信息插入到这样的 html 表单中

<form method="POST">
<textarea name="form" cols="58" rows="4" placeholder="form"></textarea>
<input type="submit" name="Create">
</form>
<?php
include("connection.php");
if ($_SERVER['REQUEST_METHOD'] == 'POST') 
$input = mysqli_real_escape_string($con, $_POST['form']);
$query = "insert into table (column) values('$input');
if (mysqli_query($con, $query)) 
    header("Location: input.php");

?>

然后input.php就是

<?php
include("connection.php");
$query = "SELECT * FROM table";
$execute = mysqli_query($con, $query);
if ($execute) 
    while ($row = $execute->fetch_assoc()) 
        echo $row['column'];
    

?>

但是,用户可以只输入原始 HTML 代码,例如 .如何阻止用户插入它,而只是将其显示为常规文本?

【问题讨论】:

另见:***.com/questions/60174/… 使用准备好的语句并正确编码您的输出,无论他们尝试注入多少 HTML、javascript 或 SQL。 【参考方案1】:

你无法阻止它。您必须正确处理它,在这种情况下,您可以在 HTML 字符串上使用 htmlentities() 以某种方式对其进行转换,这样当您输出它时,浏览器就不会开始呈现 HTML 标签。

【讨论】:

以上是关于如何使用户无法使用 PHP 在表单中输入原始 HTML 代码? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 html 输入表单中使用 php 查找时差

PHP/HTML:输入后保存表单数据

如何使提交按钮,删除和更新在同一个表单,php

如何在blade.php中使用vue获取字段的旧值

[php内的html表单进行循环-编辑/删除按钮

使用websocket节点js和php中的输入表单保存消息