重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创建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;//关闭数据库
?php
//获取POST表单提交的username
$username = isset($_POST['username']) ? trim($_POST['username']) : '';
// 同上
$password = isset($_POST['password']) ? trim($_POST['password']) : '';
//使用pdo连接mysql数据库
$conn = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
//使用参数绑定查询记录
$rs = $conn-prepare("SELECT `uid` FROM `test_user` WHERE `username` = :username AND `password` :password");
$rs-execute(array(
':username' = $username,
':password' = $password
));
if($rs-columnCount() 0)
{
echo '登录成功';
}
else
{
echo '登录失败';
}
两个都有问题才对,你的SQL语句有错,假设$_POST['username']='user';
$_POST['password']='pass';你得到的语句是SELECT username FROM DB_TABLE WHERE name= user and password= pass
而正确的语句应该是SELECT username FROM DB_TABLE WHERE name= 'user' and password= 'pass'(掉了几个引号所以报错)
$query="select * from reg where username='$username' and pwd='$pwd'";
将该语句这样写:$query = sprintf("select * from reg where username=%s and pwd=%s ", $username, $pwd);
如果是Mysql的话,一个php函数就搞定了 mysql_connect('host', 'username', 'password'); 三个参数分别是 数据库主
建议楼主检查一下sql对不对,主要看你数据库有没有sql语句的字段或者表
还有,你的密码是经过md5处理的,所以,你看你在做注册用户的时候,密码是不是也经过了md5处理,没有的话,系统会判断2个密码不相等,尽管他们的值是相同的(MD5不懂的话去搜搜,大把大把的),我估计是你注册的时候密码没处理~,你把$password = MD5($_POST['password']);的MD5去掉试试
if($check_query){
$_SESSION['username'] = $username;
echo $username,' 欢迎你!进入 a href="my.php"用户中心/abr /';
exit;
} else {
exit('登录失败!点击此处 a href="javascript:history.back(-1);"返回/a 重试');
}
$_SESSION['username'] = $username 是把用户名的值赋给一个叫username的session(这属于会话,不懂去搜搜看)