我创建字段($login
),用户应使用电子邮件或电话号码注册
所以我想进行安全检查以验证
我可以同时使用2个功能吗?我尝试了以下代码,但是没有用。
if(!is_numeric || isEmail($login)) {
$mesaj = '<div class="msg"><div class="error">Add Valid Email or Phone Number</div></div>';
}else{
$db->Query("UPDATE `users` SET `login`='".$login."' WHERE `id`='".$data['id']."'");
$mesaj = '<div class="msg"><div class="success">Success</div></div>';
}
有什么想法吗?
答案 0 :(得分:1)
您的代码中有一个错误:if(!is_numeric || isEmail($login))
您没有使用is_numeric
进行函数调用。您需要为其提供一个参数:is_numeric($myVar)
您的代码中还存在SQL注入问题。 从不连接字符串以构建查询。请改用parameterized queries。
/***
* Data input from client browser / app
***/
$data['id'] = "0' OR id > 0 OR id = '1";
$login = "', `password`='hacked";
"UPDATE `users` SET `login`='".$login."' WHERE `id`='".$data['id']."'"
输出SQL:
"UPDATE `users` SET `login`='', `password`='hacked' WHERE `id`='0' OR id > 0 OR id = '1'"