zoukankan      html  css  js  c++  java
  • 用PHP编写登陆界面

    网页的编写用PHP最方便。用php做了最简单的用户登录、创建的程序。

    一、 MySQL的设计

    MySQL设计了两个表:members和sex。两张表的创建语句分别是:

    create table members (id int(4) NOT NULL auto_increment,
    username varchar(65) NOT NULL default '',
    password varchar(65) NOT NULL default '',
    PRIMARY KEY (id));

    后有增加了几个字段:

    alter table members add firstname varchar(65);
    alter table members add lastname varchar(65);
    alter table members add email varchar(65);
    alter table members add age varchar(65);
    alter table members add sex_id int;
    alter table members modify sex_id int(4);
    alter table members modify age int(4);

    第二张表的创建语句:

    create table sex (sex_id int primary key not null, sex varchar(20));

    两张表的结构如下:

    mysql> desc members;
    +-----------+-------------+------+-----+---------+----------------+
    | Field     | Type        | Null | Key | Default | Extra          |
    +-----------+-------------+------+-----+---------+----------------+
    | id        | int(4)      | NO   | PRI | NULL    | auto_increment |
    | username  | varchar(65) | NO   |     |         |                |
    | password  | varchar(65) | NO   |     |         |                |
    | firstname | varchar(65) | YES  |     | NULL    |                |
    | lastname  | varchar(65) | YES  |     | NULL    |                |
    | email     | varchar(65) | YES  |     | NULL    |                |
    | age       | int(4)      | YES  |     | NULL    |                |
    | sex_id    | int(4)      | YES  |     | NULL    |                |
    +-----------+-------------+------+-----+---------+----------------+
    8 rows in set (0.00 sec)
    mysql> desc sex;
    +--------+-------------+------+-----+---------+-------+
    | Field  | Type        | Null | Key | Default | Extra |
    +--------+-------------+------+-----+---------+-------+
    | sex_id | int(11)     | NO   | PRI | NULL    |       |
    | sex    | varchar(20) | YES  |     | NULL    |       |
    +--------+-------------+------+-----+---------+-------+
    2 rows in set (0.00 sec)

    二、php页面的编写

    1 index.html

    Index.html是用户的登录页面主要是html的编写:

    <form name="form1" method="post" action="login.php">
    用户登录<br>
    Username:
    <input name="username" type="text" id="username"><br>
    Password:
    <input name="password" type="password" id="password"><br>
    <input name="submit" type="submit" value="Login">
    </form>
    <form name="form2" method="post" action="reg.html">
    用户注册<br>
    <input name="reg" type="submit" value="Reg">
    </form>

    具体的页面如下:

    2 用户登录login.php

    用户填写了用户名和密码后的登录和认证程序如下:

    <?php
    include('conn.php');
    $username = $_POST['username'];
    $password = $_POST['password'];
    $sql = "select * from members where username = '$username' and password = MD5('$password')";
    $user_query = mysql_query($sql,$conn) or die('mysql query error');
    $rows=mysql_num_rows($user_query);
    //print_r(mysql_fetch_row($user_query));
    if($_GET['action'] == "logout"){
        session_start();
        unset($_SESSION['username']);
        //session_unset('username');
        //session_destroy('username');    echo '注销登录成功!';
        echo $_SESSION['username'],$username;
        exit;
    }
    if ($rows == 1){
        session_start();
        $_SESSION['username'] = $username;
        echo $username,' 欢迎你!进入 <a href="my.php">用户中心</a><br />';
        echo '点击此处 <a href="login.php?action=logout">注销</a> 登>录!<br />';
        exit;
    } else {
        echo '用户名密码错误,点击此处 <a href="index.html">login</a> 登录!<br />';
    }
    ?>

    登录后的页面如下:

    3 mysql的连接程序

    在2中有一段conn.php,是与mysql的连接程序。具体内容如下:

    <?php
    $mysrv="localhost"; //数据库服务器名称
    $myuser="root"; // 连接数据库用户名
    $mypwd=""; // 连接数据库密码
    $mydb='hengwei';
    
    $conn = mysql_connect($mysrv,$myuser,$mypwd) or die("数据库链接错
    误".mysql_error());
    mysql_select_db($mydb,$conn) or die("数据库访问错误".mysql_error());
    ?>

    4 用户页面my.php

    用户登录后,可以显示自己的个人主页,其具体内容如下:

    <?php
    session_start();
    //检测是否登录,若没登录则转向登录界面  
    if(!isset($_SESSION['username'])){
        echo '您还没有登录,请登录','<br>','<a href="index.html">login</a> 登录<br />';
        exit();
    }
    $username = $_SESSION['username'];
    include('conn.php');
    $regsql = "select * from members join sex on username='$username' and members.sex_id=sex.sex_id";
    $user_query = mysql_query($regsql,$conn) or die('mysql query error');
    while($row = mysql_fetch_array($user_query)){
      echo '用户名:',$row[username],'<br />';
      echo '名:',$row[firstname],'<br />';
      echo '姓:',$row[lastname],'<br />';
      echo '年龄:',$row[age],'<br />';
      echo 'Email:',$row[email],'<br />';
      echo '性别:',$row[sex],'<br />';
    }
    echo '<a href="login.php?action=logout">注销</a> 登录<br />';
    ?>

    页面显示如下内容:

    5 用户注册页面

    用户的注册页面和登录页面类似,是html的,具体内容如下:

    <form name = "reg1" method = "post" action = "reg.php">
    用户注册<br>
    Username:
    <input name="reguser" type="text" id="reguser"><br>
    Password:
    <input name="regpwd" type="password" id="regpwd"><br>
    First Name:
    <input name="regfn" type="text" id="regfn"><br>
    Last Name:
    <input name="regln" type="text" id="regln"><br>
    Email:
    <input name="regemail" type="text" id="regemail"><br>
    Age:
    <input name="regage" type="text" id="regage"><br>
    Sex
    <input name="regsex" type="text" id="regsex"><br>
    <input name="OK" type="submit" value="OK">
    </form>

    页面显示如下:

    6 用户注册程序

    用户注册程序内容如下:

    <?php
    include('conn.php');
    $reguser = $_POST['reguser'];
    $regpwd = $_POST['regpwd'];
    $regfn = $_POST['regfn'];
    $regln = $_POST['regln'];
    $regemail = $_POST['regemail'];
    $regage = $_POST['regage'];
    $regsex = $_POST['regsex'];
    $regsql = "insert into members (username,password,firstname,lastname,email,age,sex_id) values ('$reguser',MD5('$regpwd'),'$regfn','$regln','$regemail','$regage',(select sex_id from sex where sex='$regsex'))";
    $user_query = mysql_query($regsql,$conn) or die('mysql query error');
    echo $reguser,"注册成功","<br>";
    echo '返回登录页面<a href="index.html">login</a>';
    mysql_close($conn);
    ?>

    具体的页面显示如下:

    三、总结

    用php+mysql实现用户认证的程序相当比较简单。但程序中需要主要session的控制。在需要保持session或unset session时,都需要session_start()。

    总共6个程序组成了这个登录的逻辑:

    [root@hwwaf02 au]# ll
    total 24
    -rw-r--r--. 1 root root 323 Jun 23 00:17 conn.php
    -rw-r--r--. 1 root root 385 Jun 20 14:09 index.html
    -rw-r--r--. 1 root root 963 Jun 23 00:13 login.php
    -rw-r--r--. 1 root root 857 Jun 22 23:38 my.php
    -rw-r--r--. 1 root root 543 Jun 22 23:16 reg.html
    -rw-r--r--. 1 root root 630 Jun 22 23:42 reg.php

     

  • 相关阅读:
    Java vs Python
    Compiled Language vs Scripting Language
    445. Add Two Numbers II
    213. House Robber II
    198. House Robber
    276. Paint Fence
    77. Combinations
    54. Spiral Matrix
    82. Remove Duplicates from Sorted List II
    80. Remove Duplicates from Sorted Array II
  • 原文地址:https://www.cnblogs.com/hengwei/p/7067929.html
Copyright © 2011-2022 走看看