Php 我在哪里可以放置addslashes编码以允许/';,。(标点符号)显示在网页上

Php 我在哪里可以放置addslashes编码以允许/';,。(标点符号)显示在网页上,php,mysql,Php,Mysql,在哪里可以放置addslashes或magicquotes编码,当用户向网站提交姓名和城市字段的数据时,这些编码将允许标点符号显示 if(isset($_POST['submit'])) { $name=$_POST["element_1"]; $xxx=$_POST["element_2_1"]; $xxxxx=$_POST["element_2_2"]; $xxxxx=$_POST["element_2_3"]; $xxxxx=$_POST["element_3_1"]; $xxxxx

在哪里可以放置addslashes或magicquotes编码,当用户向网站提交姓名和城市字段的数据时,这些编码将允许标点符号显示

if(isset($_POST['submit'])) {   
$name=$_POST["element_1"];
$xxx=$_POST["element_2_1"];
$xxxxx=$_POST["element_2_2"];
$xxxxx=$_POST["element_2_3"];
$xxxxx=$_POST["element_3_1"];
$xxxxxd=$_POST["element_3_2"];
$xxxxxx=$_POST["element_3_3"];
$xxxxx=$_POST["element_4_1"];
$xxxxx=$_POST["element_4_2"];
$city=$_POST["element_4_3"];
$xxx=$_POST["element_4_4"];
$xxp=$_POST["element_4_5"];
$desc=$_POST["element_5"];
//$file=$_FILES['element_6'];
$link=$_POST["element_7"];
$stdate=$stdatemm."-".$stdatedd."-".$stdateyy;
$endate=$endatemm."-".$endatedd."-".$endateyy;
$user=$_POST["postuser"];

您需要在将用户提交的内容保存到数据库时转义该内容

// Your var with `"/'` chars
$name=$_POST["element_1"];

// Escape it for database storage
$name_escaped = mysql_real_escape_string($name);

// Use the escaped version in your query
mysql_query("INSERT INTO table (column) VALUES ('" . $name_escaped . "')");
注意:必须在初始化MySQL连接之后,但在执行MySQL查询之前调用该函数

注意:从PHP5.5开始,这种执行MySQL查询的方法就不受欢迎,因此您应该使用or方法。


在任何情况下,从数据库检索内容时都不应转义,因此,如果您想在HTML页面上显示内容,请确保使用“
使用PDO”等字符将数据保存到mysql-PDO会为您转义。如果您想走繁琐的路线,请添加所有字符串变量(而不是addslashes)。有关更简单的方法,请参见。@user2512412:我假设您想将用户输入保存到数据库,对吗?这里有一个PDO网站:请记住,google是您的朋友;-)作为专业提示:如果您当前正在从文档或指导您使用
addslashes()的教程中学习
或magic_quotes_gpc,立即停止使用它,并找到最新的参考。从@mario链接的SQL注入帖子开始。像
addslashes()
这样的方法在很多年前就不受欢迎了,magic_quotes_gpc在4年多前就被弃用了。不要使用MM-DD-YY格式的日期。MySQL希望它们是yyyyy-MM-DD格式的。
<html>
<body>
    <div>
        <?php echo htmlspecialchars($name_fromDB); ?>
    </div>
</body>
</html>