我希望用户能够通过提供HTML中的值来执行PHP中的if语句当前我被困在这里如何处理$expression
如果用户输入形式例如“2 + 3 = 5”?如果前端的HTML表单中的IF语句参数通过,会传递?
<form method="post" action="test.php">
Evaluate <input type="text" required="required" name="expression" /><br />
True <input type="text" required="required" name="returnOnTrue" /><br />
False <input type="text" required="required" name="returnOnFalse" /><br />
<input type="submit" name="submit" value="Run" />
</form>
然后在PHP中我有一些像
function if_statement($expression, $true, $false) {
try {
if ( !empty($expression)
&& !empty($true) && ctype_digit($true)
&& !empty($false) && ctype_digit($false)
) {
if ($expression) {
return $true;
} else {
return $false;
}
}
return;
} catch (Exception $e) {
return;
}
}
$expression = $POST["expression"];
$onTrue = $POST["returnOnTrue"];
$onFalse = $POST["returnOnFalse"];
echo call_user_func_array("if_statement", array($expression, $onTrue, $onFalse));
有使IF语句拿用户输入,以避免注射和/或致命错误其它更安全的方式。
你可以控制“表达式”的长度 – Hann 2015-02-24 17:20:38
正如Hann所说,你需要验证你的输入,关键字在那里;) – britter 2015-02-24 17:41:30
你可以详细了解我如何验证它,这几乎是我的问题。我应该使用变量,正则表达式等? – 2015-02-24 18:01:20