ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解

作者:jingxian 时间:2023-11-22 08:18:27 

正好最近的域名备案通过了,兴起就突然想做一个网页,虽然之前去备案域名也是有这个目的。

问过几个人,说用linux上用PHP搭建网站很简单,就试着做了一个,这里主要说一下登录验证相关的部分;

首相准备几个文件,主要是index.php、conn.php、data.php以及login.php;

login.php 主要是登录过程中的数据对比部分;其中include ('conn.php')内容在下面有说。


<?php
if(!isset($_POST['submit'])){
exit('login in error.');
}
$username = htmlspecialchars($_POST['username']);
$password = MD5($_POST['password']);
include('conn.php');
echo"$password";
$check_query = mysqli_query($result,"select USERID from USERINFO where EMAIL='$username' and PASSWORD='$password' limit 1");
if($ret = mysqli_fetch_array($check_query)){

echo'connect true.';
}
else
{
echo'connect false';
}
?>

另外要注意的是:关于$_POST针对的是form中的method =“post”中的内容。

因为里面用到MD5加密的方式,所以说一下,在后台数据库加密的时候也需要用到MD5加密的方式update数据,具体方式如下:


UPDATE USERINFO SET PASSWORD = md5('root') WHERE USERID = 1000;

其中的表格以及具体查询位置根据个人数据库而定。

conn.php 主要是跟mysql数据库连接相关的操作,分为数据库连接,以及数据库选择部分(注意数据库连接的返回值取值,不要随便起,后边引用的时候是用得着的。)


<?php
try{
$result = mysqli_connect('localhost','root','root');
mysqli_select_db($result,'WEBDATAS');
}catch(Exception $e)
{
echo $e->message;
exit;
}
if(!$result)
{
return false;
}
echo "ok\n";
?>

剩下的主要是index.php 该文件是主页相关了,我只把登录相关的部分拿出来说明一下(这里用到的是boostrap中的模板,有兴趣的可以百度一下boostrap)


<?php
session_start();
include_once('data.php');

$handle = db_connect();
if(!$handle){
echo 'Did not access to the database';
}else{
echo'connect success';
}
?>

其中包含的data.php登录部分如下:


<div class="modal fade" tabindex="-1" role="dialog" id="login">
  <div class="modal-dialog" role="document">
   <div class="modal-content">
    <div class="modal-header">
     <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
     <h3 class="modal-title">ログイン</h3>
    </div>
    <div class="modal-body">
     <form class="form-signin" action="login.php" method = "post">
      <h4 class="form-signin-heading">利用者名 パスワード 入力</h4>
      <label for="inputEmail" class="sr-only">利用者名</label>
      <input type="email" name="username" id="inputEmail" class="form-control" placeholder="利用者名を入力" required autofocus>
      <label for="inputPassword" class="sr-only">パスワード</label>
      <input type="password" name="password" id="inputPassword" class="form-control" placeholder="パスワード" required>
      <div class="checkbox">
       <label>
       <input type="checkbox" value="remember-me"> ログイン状態を保持
      </label>
      </div>
      <button class="btn btn-lg btn-primary btn-block" type="submit" name="submit">ログイン</button>
     </form>
    </div>
    <div class="modal-footer">
     <button type="button" class="btn btn-default" data-dismiss="modal">クローズ</button>
    </div>
   </div>
   <!-- /.modal-content -->
  </div>
  <!-- /.modal-dialog -->
 </div>

基本关于登录验证部分就是这些,主要是与数据库的数据进行对比,一开始用的对称加密的方式,对加密的方式还没有仔细去研究,后面有机会再仔细看一下就好。

标签:php,登录验证,mysql,ubutu16.04
0
投稿

猜你喜欢

  • MySQL一些常用高级SQL语句详解

    2024-01-29 02:45:22
  • 使用git config --global设置用户名和邮件问题

    2022-02-14 11:01:08
  • Go高级特性探究之稳定排序详解

    2023-07-17 16:11:48
  • Mysql的Binlog数据恢复:不小心删除数据库详解

    2024-01-18 21:23:29
  • pandas归一化与反归一化操作实现

    2023-07-01 13:24:57
  • 详解Python中for循环的使用方法

    2023-06-12 10:53:19
  • Python调用C# Com dll组件实战教程

    2023-09-05 10:46:06
  • Python中拆分字符串的操作方法

    2023-12-20 00:43:24
  • python调用并链接MATLAB脚本详解

    2021-12-11 07:16:42
  • Python爬虫之urllib基础用法教程

    2023-08-09 08:29:01
  • 使用pip下载时提示"You are using pip version 8.1.1, however version 22.1 is available."错误解决

    2023-08-02 18:04:49
  • mysql模糊匹配多个值的两种方法实例

    2024-01-27 10:12:06
  • Python操作Sql Server 2008数据库的方法详解

    2024-01-20 04:47:01
  • asp如何读取Access数据库的表名?

    2009-11-18 20:48:00
  • python Dijkstra算法实现最短路径问题的方法

    2022-02-21 03:08:51
  • 加固SQL参数与存储过程

    2012-03-12 19:44:08
  • python网络编程学习笔记(三):socket网络服务器

    2023-01-11 10:40:29
  • Python文件读写及常用文件的打开方式

    2023-04-21 10:50:38
  • vue和react等项目中更简单的实现展开收起更多等效果示例

    2024-05-29 22:47:35
  • ACCESS入门教程:初识Access 2000

    2008-01-03 19:42:00
  • asp之家 网络编程 m.aspxhome.com