服务报价 | 域名主机 | 网络营销 | 软件工具| [加入收藏]
 热线电话: #
当前位置: 主页 > php教程 > php教程 >

PHP+sqlite3验证登录用户名和密码

时间:2016-10-30 20:24来源:未知 作者:最模板 点击:
Session:在计算机中,尤其是在网络应用中,称为会话控制。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变

Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。

实例

PHP创建sqlite数据库

创建一个MyDB类并继承SQLite3类,并实例化一个db对象。

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }
?>

PHP创建表

通过db的exec方法执行sql语句。

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }

   $sql =<<<EOF
      CREATE TABLE COMPANY
      (ID INT PRIMARY KEY     NOT NULL,
      NAME           TEXT    NOT NULL,
      AGE            INT     NOT NULL,
      ADDRESS        CHAR(50),
      SALARY         REAL);
EOF;

   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo "Table created successfully\n";
   }
   $db->close();
?>

PHP插入数据

与创建表的方法一样,都是通过db的exec方法执行sql语句。

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }

   $sql =<<<EOF
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (1, 'Paul', 32, 'California', 20000.00 );

      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 );

      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );

      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );
EOF;

   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo "Records created successfully\n";
   }
   $db->close();
?>

实战

整个登录程序的结构分别为登录页面,用户中心,连接数据库。

由于没添加注册功能,所以使用create.php创建一个用户

create.php

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('sqlite3.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }

   $sql =<<<EOF
      CREATE TABLE COMPANY
      (userid INT PRIMARY KEY     NOT NULL,
      username           TEXT    NOT NULL,
      password           TEXT     NOT NULL);
EOF;

   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo "Table created successfully\n";
   }
   
   
   $sql2 =<<<EOF
      INSERT INTO COMPANY (userid,username,password)
      VALUES (1, 'popy32', $(MD5("popy32")));
EOF;

$ret = $db->exec($sql2);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo "Insert data successfully\n";
   }  
   $db->close();
?>

login.php(登录处理)

负责生成登录页面和验证登录的信息

<html>  
<head>用户登录</head>  
<form name="LoginForm" method="post" action="login.php" onSubmit="return InputCheck(this)">  
<p>  
<label for="username" class="label">用户名:</label>  
<input id="username" name="username" type="text" class="input" />  
<p/>  
<p>  
<label for="password" class="label">密 码:</label>  
<input id="password" name="password" type="password" class="input" />  
<p/>  
<p>  
<input type="submit" name="submit" value=" 登录 " class="left" />  
</p>  
</form>  
</html>

<?php  
header("Content-Type: text/html; charset=utf-8");
//登录  
if(!isset($_POST['submit'])){  
    exit('非法访问!');  
}  
$username = htmlspecialchars($_POST['username']);  
$password = MD5($_POST['password']);  
  
//包含数据库连接文件  
include('conn.php');  

$sql =<<<EOF
      SELECT * from COMPANY;
EOF;
 
$ret = $db->exec($sql);

//检测用户名及密码是否正确 
if(($row['username']==$username)&&($row['password']==$password)){  
 //登录成功 
		
    session_start();  
    $_SESSION['username'] = $username;  
    $_SESSION['userid'] = $row['userid'];  
    echo $username,' 欢迎你!进入 <a href="my.php">用户中心</a><br />';  
    echo '点击此处 <a href="login.php?action=logout">注销</a> 登录!<br />';  
    exit; 
    $db->close();	
} else {  
    exit('登录失败!点击此处 <a href="javascript:history.back(-1);">返回</a> 重试'); 
    $db->close();	
}  
    
//注销登录  
if($_GET['action'] == "logout"){  
    unset($_SESSION['userid']);  
    unset($_SESSION['username']);  
    echo '注销登录成功!点击此处 <a href="login.html">登录</a>';  
    exit;  
}  
  
?>

my.php(用户中心)

<?php
header("Content-Type: text/html; charset=utf-8");  
session_start();  
  
//检测是否登录,若没登录则转向登录界面  
if(!isset($_SESSION['userid'])){  
    header("Location:login.php");  
    exit();  
}  
//包含数据库连接文件  
include('conn.php');  
$userid = $_SESSION['userid'];  
$username = $_SESSION['username'];  
 
echo '用户信息:<br />';  
echo '用户ID:',$userid,'<br />';  
echo '用户名:',$username,'<br />';  
echo '<a href="login.php?action=logout">注销</a> 登录<br />';  
?>

conn.php(连接数据库)

<?php

header("Content-Type: text/html; charset=utf-8");
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('sqlite3.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      die("数据库访问错误".$db->lastErrorMsg());   
   } 

?>

(责任编辑:最模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容