php - 三元运算符变量和mysql?

标签 php mysql security

这行得通吗?

$username = mysql_real_escape_string(isset($_POST['username'])) ? $_POST['username'] : '';

我知道三元运算符可以工作,但真正的转义呢?如果真正越狱成功,如何查看以供日后引用?

谢谢

最佳答案

您的代码正在转义三元表达式的条件而不是结果。

$username = mysql_real_escape_string(isset($_POST['username']) ? $_POST['username'] : '');

将括号移动到表达式的末尾,然后您将转义三元表达式的任何结果。你也可以使用

$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : '';

一个更好的选择是为此使用一个函数,而不是围绕 ie 编写一大堆代码。

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');

关于php - 三元运算符变量和mysql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5626183/

相关文章:

jquery - 将一个 50 字段的表单提交到多个表;常规 POST、AJAX POST 或其他?

php - 更改 div 属性

php - 使用 PHP 修改字符串中的链接

PHP "Warning: Illegal offset type in ..."数组问题让我很困惑

php - mysql时间戳,在PHP中过滤今天记录的where子句

php - the_field ('user' ) 带来所有信息

php - PHP POST 请求中缺少授权 header

security - "execute app as me"部署设置安全吗?

Node.js API REST 安全性

node.js - 用于散列和加盐用户登录/密码的好 npm 模块?