gpt4 book ai didi

php - HTML 表单、php 和撇号

转载 作者:可可西里 更新时间:2023-11-01 00:06:29 24 4
gpt4 key购买 nike

使用 HTML、XML 和 php 5.3(无 SQL)进行统一分配。建立一个评论网站。我有一个文本区域,用户可以在其中放置他们的评论。如果用户输入撇号,例如 World's Best Uni!,当我回显 $_REQUEST['reviewtext'] 时,我得到 World\'s Best Uni!

为了在 XML 中保存数据,我有以下代码:

$cleantext1 = htmlspecialchars($_REQUEST['reviewtext']);
substr_replace($cleantext1,"\'","'");
$cleantext2 = strip_tags($cleantext1);
$cleantext3 = utf8_encode($cleantext2);

我在每一步都有 echo ,这句话仍然是世界上最好的大学!在每一步。我希望前两行之一用 html 代码替换转义的撇号,但它似乎不起作用。

有趣的是,这个问题并没有发生在我的本地 XAMPP 服务器上;仅在我托管的网站上。

有什么建议吗?谢谢,肖恩

最佳答案

你遇到的是PHP的Magic Quotes自动转义来自 GET、POST、COOKIE 的输入的功能。依赖这个特性是不明智的,并且从 PHP 5.3 开始被弃用,并且在大多数配置上倾向于默认关闭(但不是在你的 Uni 的配置中)。

您可以使用 get_magic_quotes_gpc()确定是否打开,如果打开,则取消转义数据。

if (get_magic_quotes_gpc()) {
$val = stripslashes($_POST['val']);
} else {
$val = $_POST['val'];
}

magic quotes reference详细介绍了魔术引号的历史、用法以及如何处理。

另外,顺便提一下,当您输出数据时,请始终确保对其进行转义(例如 htmlspecialchars() 并且当您处理来自任何不受信任来源的输入时,请确保对其进行过滤(例如 addslashes()mysql_real_escape_string() ) .

关于php - HTML 表单、php 和撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9321681/

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