这是我在 stackoverflow 上的第一篇文章。我需要问一些与PHP 清理输入相关的简单 :D 问题,并且非常感谢任何可以帮助我的人 :)
1)好的,当我运行 get_magic_quotes_gpc() 时,它返回 false。这意味着魔术引号已关闭。它是否正确?
2) 当魔术引号关闭时,我是否应该使用 stripslashes()、htmlentities() 和 strip_tags() 清理任何用户输入的字符串?
3)即使当我输入诸如 \ 或其他字符之类的字符时关闭了魔术引号,我的程序也无法避免它们。这是为什么?
4)然后我修改了我的程序以在处理字符串之前调用一个函数来清理字符串。即使清除了字符串,它仍然会显示那些不需要的字符。sanitizeString() 函数有什么问题吗
下面是我的代码,与问题 3 相关)(该程序应该将华氏温度转换为摄氏温度,反之亦然)
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="TemperatureConverter.php" method="post">
<label>Fahrenheit</label><input type="text" name="f" size="10"/><br>
<label>Celsius</label><input type="text" name="c" size="10"/><br>
<input type="submit" name="submit" value="SUBMIT">
</form>
</body>
</html>
<?php
$f='';
$c='';
if(isset($_POST["f"])){
$f= sanitizeString($_POST["f"]);
}
if(isset($_POST["c"])){
$c=sanitizeString($_POST["c"]);
}
if($f!=""){
$c=(5/9)*($f-32);
echo $f.' Fahrenhite is equal to '.$c.' Celsius ';
}
else if($c!=""){
$f=$c*(9/5)+32;
echo $c.' Celsius is equal to '.$f.' Fahrenhite ';
}
function sanitizeString($str){
$str= stripslashes($str);
$str= htmlentities($str);
$str= strip_tags($str);
return $str;
}
我想我已经正确发布了符合stackoverflow规则的代码。如果不后悔。:(