用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM