(사용자 입력이 있으므로 하드 코딩을 할 수 없습니다.) 어쨌든, 사용자가 math.php? do = 2 + 2를 입력하면 스크립트는 결과로 4를 되돌립니다. 또 다른 한 가지는 입력이 엄격하게 검증되므로 악의적 인 가능성이 없다는 것입니다. 내 테스트 방법은 다음과 같습니다PHP : 수학 연산이있는 문자열이 있습니다. 어떻게 실행합니까?
function testMath($char){
$array['math'] = Array("+", "-", "/", "*", "(", ")", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
foreach($char as $chr){
if(!in_array($chr, $array['math'){
return false;
}
}
return true;
}
평가하는 것이 안전할까요? 또는 사용자 입력을 통해 수학을하는 것을 잊어야합니까? 나는() 뭔가를 평가 후면 때
사이드 노트, PHP는
Parse error: parse error in C:\Users\Josh\Desktop\App\html\new.php(24) : eval()'d code on line 1
가 발생합니다. 뭐가 문제 야?
당신은 자바 스크립트와 사용자의 끝에 수학을 그냥 것입니다 왜 ? 방법은 덜 위험합니다. –
'eval'은 사용자 입력이 끝난 경우 몇 가지 명백한 안전 문제가 있습니다. 테스트는 괜찮은 것처럼 보이지만 길이를 제한하려고 할 수도 있습니다. 'eval'을 호출하면 어떻게 생깁니 까? –
또는 이미 생성 된 것을 사용하십시오 : http://stackoverflow.com/questions/1015242/how-to-evaluate-formula-passed-as-string-in-php – NightHawk