这会有用吗?
$username = mysql_real_escape_string(isset($_POST['username'])) ? $_POST['username'] : '';
我知道三元运算符会起作用,但真正的逃逸呢?如果真正的逃脱成功,我如何检查将来的参考?
由于
答案 0 :(得分:3)
你的代码正在逃避三元表达的条件而不是结果。
$username = mysql_real_escape_string(isset($_POST['username']) ? $_POST['username'] : '');
将括号移动到表达式的末尾,然后您将转义三元表达式的结果。你也可以使用
$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : '';
更好的选择是为此使用一个函数,而不是有一堆巨大的代码行,即。
function escape_val($arr, $key, $default = ''){
return mysql_real_escape_string(isset($arr[$key]) ? $arr[$key] : $default);
}
$username = escape_val($_POST, 'username');
$some_other = escape_val($_POST,'key','default_value');
答案 1 :(得分:2)
$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : '';
// ^ condition ^ value if condition returns true ^ if false