if($_POST[id]=='$a') $a 不能用单引号括起来,要么用双引号,要不不用,单引号扩住的话,它不会编译,只会把它堪称是字符串 $a 来看待。我说一个问题哦,仅仅是我自己理解的,你在页面传输的时候接受 id ($_POST[id]==)的值,而你又要和$a(用户名$lr[luser]; )比较( _POST[id]=='$a' ),你的用户民 是字符串,而id是数字类型的,怎么能相等...
成都创新互联是一家集网站建设,黄骅企业网站建设,黄骅品牌网站建设,网站定制,黄骅网站建设报价,网络营销,网络优化,黄骅网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
楼上的sql语句要加上一些才行。
$sql="select * from 表 where 用户名='{$_POST['user']}' and 密码='{$_POST['pass']}'";
$row=mysql_query($sql);
if(!empty($row)){
echo "scriptalert('用户名存在,不可以注册')/script";
}else{
echo "scriptalert('用户名不存在,可以注册')/script";
}
即便用户输入了一些恶意的id参数,系统也会强制转换成整型,避免恶意注入。这是因为,系统会对数据进行强制的数据类型检测,并且对数据来源进行数据格式转换。而且,对于字符串类型的数据,ThinkPHP都会进行escape_string处理(real_escape_string,mysql_escape_string)。
而且,你在验证的时候尽量使用数组查询,这样会比较安全,比如:
$map['username']=I('post.name');
$map['userpassword']=I('post.password');
$list=$data=D("user")-where($map)-find();
这样就好了