成都网站建设设计

将想法与焦点和您一起共享

php链接数据库登录验证,php用户登录功能验证

php连接数据库验证用户名密码没输入账号直接提示失败 去掉exit('登录失败!'); 可以正常登录,请大佬看看

这个是登录流程问题,

创新互联建站是一家专业提供盐田企业网站建设,专注与成都网站建设、成都网站制作、H5开发、小程序制作等业务。10年已为盐田众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

一般正确的流程是在第一次打开登录页面的时候,应该先执行html那部分的,然后显示登录页的布局,然后输入账号和密码 点击登录的按钮,表单提交到自身,然后才是执行数据库连接,数据库查询账号密码是否正确这些流程,如果正确就跳转页面,错误就显示登录失败。

而从你的代码看第一次打开登录页面的时候 是先执行了php代码,查数据库所以会先提示登录失败。

你可以把你的代码 php部分外层加一个if($_POST){}判断, 然后登录的时候用Post提交,这样你在刷新登录页的时候,因为是get提交所以不会执行if判断里的代码,然后点登录的时候才会触发if里的代码

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;//关闭数据库

php连接数据库,登入系统!!求代码!!!

//采用pdo链接数据库

try{

$dsn

=

'mysql:host=127.0.0.1;dbname=citest';

$pdo

=

new

PDO($dsn,'root','qq');

$pdo-setAttribute(3,2);

}catch(PDOEXCEPTION

$e){

echo

$e-

getMessage

();

}

//通过预处理查询验证

try{

$sql

=

"SELECT

count(*)

FROM

users

WHERE

username=:username

AND

password=:password";

$stmt

=

$pdo-prepare($sql);

$data

=

$stmt-execute($_GET);

//接过来的post值,前提表单中的name值和数据库的的字段名称相同

if($data){

echo

'登陆成功';

}else{

echo

'登陆失败';

}

}catch(PDOEXCEPTION

$e){

echo

$e-getMessage();

}

php 连接数据库做用户登录,急

建议楼主检查一下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(这属于会话,不懂去搜搜看)


网站题目:php链接数据库登录验证,php用户登录功能验证
标题URL:http://chengdu.cdxwcx.cn/article/dseidjd.html