我在设置一个登陆验证,从 页面$_POST过来一个数组,包含 user,password,verify的信息。
假设 $arr = $_POST;//获取的字段,包含 user,password,verify的信息
$table = 'admin_user';//表名
我需要查询,并且验证用户名密码是否匹配,设置一个函数
function select($table,$arr){
$str = '`'.implode('`,`', array_keys('$arr')).'`';
foreach($arr as $val){
$val = "'".$val."'";
}
$arr = "'".implode("','", $arr)."'";
$sql = "select * from `{$table}`where {$str} = {$arr}";
现在的问题是,怎么把数组中不需要的元素 verify 验证码去掉,然后进行比对
}
如果mysql_query 执行的话,或者打印出来,格式也不太对。
$not_needed = ['verify', ]; foreach($post as $item => $value){ if(!in_array($item, $not_needed)){ $here[] = '`' . $item . '`="' . $value . '"'; } } $here = implode(' and ', $here); $sql = 'select * from table_name where ' . $here;
unset($arr['verify']);
$str = '`'.implode('`,`', array_keys('$arr')).'`';
array_keys('$arr') function select($table,$arr){
unset($arr['verify']);
$str = '`'.implode('`,`', array_keys($arr)).'`';
foreach($arr as $val){
$val = "'".$val."'";
}
$arr = "'".implode("','", $arr)."'";
$sql = "select * from `{$table}`where {$str} = {$arr}";
print_r($sql);
// $query = mysql_query($sql);
// return $query;
}
打印出来的效果:
打印出来,select * from `admin_user`where `user`= ‘kopa’ and `password` = '3363064'
$not_needed = ['verify', ];foreach($post as $item => $value){ if(!in_array($item, $not_needed)){ $here[] = '' . $item . '
="' . $value . '"'; } }
$here = implode(' and ', $here); $sql = 'select * from table_name where ' . $here;
function select($table,$arr){
foreach ($arr as $key => $value) {
$here[] = '`'.$key.'`='.$value;
}
$here = implode(' and ', $here);
$sql = "select * from $table where ".$here;
print_r($sql);
//验证码环节在提交的时候unset掉了 }
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。