你可以在登录的时候把 这个登录的账号ID或者账号名存入session里面!你每次取数据的时候就可以从session里面取到这个账号的ID或者账号名!进行查询
成都创新互联公司主要从事做网站、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务广丰,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
也可以登录的时候就把所有的信息放入session里面 以后要查看信息的时候不用去数据库查询了、当然这个必须要保证这个账号的信息被修改的时候要重新把信息放入session里面!
php使用session必须先在页面使用代码session_start();开启session回话
存值=$_SESSION['ID']=$ID;也可以放数组的
取值=$id=$_SESSION['ID'];
session默认存活时间为30分钟!这个表示账号登录后!在30分钟内没有一次请求过服务器session就消亡了!
//采用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();
}
创建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("SELECT username,passwd FROM wen WHERE $username=$user,$passwd=$passwd"){
echo "scriptalert('欢迎登录!');window.location.href='index1.php';/script";
}
这一句代码本身就是不通的.
还有就是 你的sql语句也是错误的。
参考如下:
$sql = 'SELECT username,passwd FROM wen WHERE username="'.$user.'" AND passwd="'.$passwd.'"';
$result = mysql_query($sql,$conn);
手动回复,不谢
两个都有问题才对,你的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'(掉了几个引号所以报错)