이것은 stackoverflow에서의 첫 번째 게시물입니다. 나는 몇 가지 간단한 요청해야 : D 질문이 나를 도와 수 :PHP - 매직 큐트가 꺼져있을 때 문자열을 살균해야합니까?
1) 좋아, 그럼 난 실행할 때 get_magic_quotes_gpc를 누구나 PHP 살균 입력 정말 감사() false를 반환과 관련. 마술 따옴표가 꺼져있는 것을 의미합니다. 이 올바른지?
2) 마술 따옴표를 끄면 stripslashes(), htmlentities() & strip_tags()를 사용하여 사용자가 입력 한 문자열을 삭제해야합니까?
3) \ 또는 다른 문자와 같은 문자를 입력 할 때 마법 인용 부호가 꺼져 있어도 내 프로그램에는 피할 수 없습니다. 왜 그런가요?
4) 그런 다음 처리하기 전에 문자열을 지우는 함수를 호출하도록 프로그램을 수정했습니다. 문자열이 지워졌음에도 불구하고 여전히 원하지 않는 문자가 표시됩니다. 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;
}
에 화씨로 변환하도록되어 sanitizeString에 아무 잘못() 함수 아래
이되는 것 같아요 나는 게시 내 코드는 제대로 stackoverflow의 규칙을 준수합니다. 미안하지만. 당신이 수를 할 입력을 알고 :(당신의 예에서
해당 컨텍스트에 가져올 때 가져온 특정 _context_에 따라 데이터를 처리해야합니다. 어떤 데이터라도 "stripslashes, htmlentities and strip_tags"를 그냥 사용하는 것은 말도 안됩니다. 이 주제는 이미 많이 논의되었으므로 일부 연구를 수행하십시오. – CBroe
PHP의'filter' 함수 [here] (http://www.php.net/manual/en/book.filter.php)를 살펴 봐야합니다. 그들은 사용하기 까다 롭지 만, 입력을 살균하고 검증하기위한 광범위한 옵션을 제공합니다. –