这个就是比较基础的事情啦
站在用户的角度思考问题,与客户深入沟通,找到石楼网站设计与石楼网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站建设、外贸网站建设、企业官网、英文网站、手机端网站、网站推广、域名申请、虚拟空间、企业邮箱。业务覆盖石楼地区。
你的代码中: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 大家交流一下
创建conn.php,连接数据库。
$dns = 'mysql:host=127.0.0.1;dbname=test';
$username = 'root';
$password = 'root';
// 1.连接数据库,创建PDO对象
$pdo = new PDO($dns,$username,$password);
创建login.html,登陆页面。
用户名
密 码
创建login.php,验证账号密码。
header("Content-Type: text/html; charset=utf8");
if(!isset($_POST["submit"])){
exit("错误执行");
}//检测是否有submit操作
include('conn.php');//链接数据库
$name = $_POST['name'];//post获得用户名表单值
$pwd = sha1($_POST['password']);//post获得用户密码单值
if ($name $pwd){//如果用户名和密码都不为空
$sql = "select * from user where username = '$name' and password='$pwd'";//检测数据库是否有对应的username和password的sql
$stmt = $pdo-prepare($sql);
$stmt-execute();
if($stmt-fetch(PDO::FETCH_BOUND)){//0 false 1 true
header("refresh:0;url=welcome.html");//如果成功跳转至welcome.html页面
exit;
}else{
echo "用户名或密码错误";
echo "
setTimeout(function(){window.location.href='login.html';},1000);
";//如果错误使用js 1秒后跳转到登录页面重试;
}
}else{//如果用户名或密码有空
echo "表单填写不完整";
echo "
setTimeout(function(){window.location.href='login.html';},1000);
";
//如果错误使用js 1秒后跳转到登录页面重试;
}
$pdo = null;
创建signup.html,注册页面
用户名:
密 码:
创建signup.php
header("Content-Type: text/html; charset=utf8");
if(!isset($_POST['submit'])){
exit("错误执行");
}//判断是否有submit操作
$name=$_POST['name'];//post获取表单里的name
$pwd = sha1($_POST['password']);//post获取表单里的password
include('conn.php');//链接数据库
$sql="insert into user(id,username,password) values (null,'$name','$pwd')";//向数据库插入表单传来的值的sql
$stmt = $pdo-prepare($sql);
$stmt-execute();
$stmt-fetch(PDO::FETCH_BOUND);
if (!$stmt){
die('Error: ' . $stmt-getMessage());//如果sql执行失败输出错误
}else{
echo "注册成功";//成功输出注册成功
}
$pdo = null;//关闭数据库
if($_POST[id]=='$a') $a 不能用单引号括起来,要么用双引号,要不不用,单引号扩住的话,它不会编译,只会把它堪称是字符串 $a 来看待。我说一个问题哦,仅仅是我自己理解的,你在页面传输的时候接受 id ($_POST[id]==)的值,而你又要和$a(用户名$lr[luser]; )比较( _POST[id]=='$a' ),你的用户民 是字符串,而id是数字类型的,怎么能相等...
如果不考虑sql注入,不过率用户输入信息的话,最简单的代码如下:
?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$db = mysql_connect("localhost","root","123") or die("fail");
echo "connect ok!br";
mysql_select_db('ck');
$_POST['pwd'] = md5($_POST['pwd']);//如果数据库里存的不是md5码,这句就不用了
$sql = "select * from adminuser where username='{$_POST['name']}' and password='{$_POST['pwd']}'";
$result = mysql_query($sql);
if(mysql_num_rows($result) != 0){
echo "找到了!";
}
else{
echo "没这个人!";
}
exit();
}
?
html
head
meta http-equiv="Content-Type" content="text/html; charset=gb2312" /
title用户信息/title
/head
form name="fm" action="" method="post"
input type="text" name="name" value="" /
input type="password" name="pwd" value="" /
input type="submit" value="提交" /
/form
/html