gpt4 book ai didi

php - 尽管使用了条斜杠,斜杠仍出现在显示的表单文本中

转载 作者:行者123 更新时间:2023-11-30 00:50:22 25 4
gpt4 key购买 nike

我有一个评论框正在运行,我刚刚注意到当我使用 ' 时,它会在它前面创建一个 \ 。例如,如果我写“how's”,它在发布到的数据库中以及在页面上显示时都会显示为“how\'s”。当我显示“正文”文本时,我使用了 stripslashes 函数,我认为该函数应该去掉斜杠。

我的服务器正在运行 php 版本 5.3.6,如果有帮助的话。

我正在使用这段代码将评论框正文中的文本发布到我的数据库中:

$body = mysql_prep($_POST['body']);

它使用的函数是这样的:

function mysql_prep($string) {
global $connection;

$escaped_string = mysqli_real_escape_string($connection, $string);
return $escaped_string;
}

旁注:您不需要回答这个问题,但这是我用来确保用户输入的文本免受黑客、坏人等侵害的功能。我这样做好吗?还是我让自己面临问题? (除了这个斜杠问题可能是由于这个函数造成的)

这是我用来显示文本的代码:

<div id="comments">
<?php while($comment_text = mysqli_fetch_assoc($display_comments)) { ?>
<div class="comment" style="margin-bottom: 2em;">
<div class="author">
<b><?php echo htmlentities($comment_text["author"]); ?>:</b>
</div>
<div class="meta-info" style="font-size: 0.8em;">
<?php echo datetime_to_text($comment_text["created"]); ?>
</div>
<div class="body">
<?php echo stripslashes($comment_text["body"], '<strong><em><p>'); ?>
</div>
</div>
<?php } ?>
<?php if(empty($display_comments)) { echo "No Comments."; } ?>
</div>

非常感谢任何帮助或建议,谢谢!!

最佳答案

你的问题是,你有Magic Quotes打开。您可以使用此方法递归地去除所有斜杠:

文件magic_quotes_filter.php

<?php

if (function_exists('set_magic_quotes_runtime') && get_magic_quotes_gpc()) {

function stripslashes_deep($value) {
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);

return $value;
}

$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}

然后您可以简单地 include('path/to/magic_quotes_filter.php') 处理请求 HTTP 变量。

就您而言,只需将其包含在脚本的顶部即可。

关于php - 尽管使用了条斜杠,斜杠仍出现在显示的表单文本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21038636/

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