$db=mysql_connect(连接你的数据库);
在武安等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站制作、做网站 网站设计制作按需制作,公司网站建设,企业网站建设,成都品牌网站建设,成都全网营销,外贸网站建设,武安网站建设费用合理。
mysql_select_db('login', $db);
$u=$_POST['u'];
$p=$_POST['p'];
if($u $p){
$query=mysql_query('select * from exam where name=\''.$u.'\'',$db);
if($re=mysql_fetch_array($query,MYSQL_ASSOC)$re['password']==$p){
exit('scriptalert(\'登陆成功\');history.back();/script');
}else{
exit('scriptalert(\'用户名不存在,或密码错误\');history.back();/script');
}
}
这个就是比较基础的事情啦
你的代码中:if(mysql_affected_rows($link)!=0)
意思是某个查询所影响的行数,如果用户名和密码都不对,将返回0行,当然就不能通过验证啦
这样是一次性验证了用户名和密码.
但是你的sql语句有问题
应该这样 : $sql2="select * from user where name = '$name' and password = '$pass'";
你要获取查询的结果: 一般都用 mysql_fetch_array();
按照你上面例子用法
$result = mysql_query (select * from user where name = '$name')
$row = mysql_fetch_array($result);
如果你的sql语句没错话,用户名又存在
那么 就返回了一个数组 $row
你用echo $row[0] 或者 $row['name'] 试试就可以获得内容
你获得了用户名之后,就可以继续查询秘密是否正确啦..
原来一样
还不懂的话,来我博客看看 我也在学习php 大家交流一下
?php
session_start();
if($_POST['name']$_POST['pass'])
{
$name=$_POST['name']; //接受传递值
$pass=$_POST['pass'];
}
else
{
echo '用户名或密码不能为空';//当然也可以进行其他操作,比如使用header('Location:error.php')来把用户重定向到一个错误提示页
exit;
}
include_once('mysql_connect.php');//连接数据库
$name=mysql_real_escape_string($name); //过滤信息
$pass=mysql_real_escape_string($pass);
$sql='select username,userpass from userdata where username="$name"';//从数据库中取出用户信息
$r=mysql_query($sql);
if(mysql_num_rows==0)
{
echo '用户名不存在';
exit;
}
else
{
$row=mysql_fetch_assoc($r);
if($pass!=$row['userpass'])
{
echo '用户密码错误';
exit;
}
esle
{
$_SESSION['user']=$name; //创建SESSION
}
}
?
即便用户输入了一些恶意的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();
这样就好了