gpt4 book ai didi

php - 如何使用 PHP 将撇号从文本区域传递到 MySQL

转载 作者:行者123 更新时间:2023-12-02 17:46:40 25 4
gpt4 key购买 nike

我有一个文本区域,用户也可以添加注释。在下一页上,我使用 $_POST[Comments] 来显示键入的内容。我有一个编辑按钮可以返回并查看键入的内容并编辑注释,但是当我显示 $_POST[Comments] 时,它会显示所有内容,直到撇号。

例子:

最初输入:让我们试试这个。

编辑时:

现在,当我将它传递给服务器进行 SQL 添加时,我使用以下函数来防止 SQL 注入(inject)

function keepSafe($value) {
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
if (!is_numeric($value)) {
$value = "'" . mysqli_real_escape_string($value) . "'";
}
return $value;
}

以下是我用来格式化 SQL 插入的输入。

$Comments = str_replace("\n","<br />",$_POST['CustComments']);
$Comments = keepSafe($_POST['Comments']);

在提交前进行编辑时,我需要能够看到注释部分中的所有撇号。我想确保当我提交它时,SQL 注入(inject)阻止了安全代码。

最佳答案

撇号的问题:

您可能使用这样的输入:

<input type='text' value='<?php echo $value;?>'/>

问题是,如果值有撇号,就会发生这种情况:

<input type='text' value='Let's play'/>

因此,由于变量中的撇号,值标记已结束。

要修复它,只需使用带有 ENT_QUOTES 的 htmlspecialchars:

<?php 
$value = htmlspecialchars("Let's play", ENT_QUOTES);
?>
<input type='text' value='<?php echo $value; ?>'/>

这样撇号就会被编码并且可以在您的表单中进行编辑

关于SQL注入(inject):

只需使用 mysqli's prepared statements你会没事的。为了让您远离 XSS,始终在 HTML 输出中使用 htmlspecialchars 用户输入。更好的做法是仅过滤您需要的输入,并仅将过滤后的输入保存到您的数据库中。

关于php - 如何使用 PHP 将撇号从文本区域传递到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13711693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com