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

一、 MySQL的设计

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

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

后有增加了几个字段:

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

第二张表的创建语句:

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

两张表的结构如下:

mysql> desc members;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| id | int() | NO | PRI | NULL | auto_increment |
| username | varchar() | NO | | | |
| password | varchar() | NO | | | |
| firstname | varchar() | YES | | NULL | |
| lastname | varchar() | YES | | NULL | |
| email | varchar() | YES | | NULL | |
| age | int() | YES | | NULL | |
| sex_id | int() | YES | | NULL | |
+-----------+-------------+------+-----+---------+----------------+
rows in set (0.00 sec)
mysql> desc sex;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| sex_id | int() | NO | PRI | NULL | |
| sex | varchar() | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
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
-rw-r--r--. root root Jun : conn.php
-rw-r--r--. root root Jun : index.html
-rw-r--r--. root root Jun : login.php
-rw-r--r--. root root Jun : my.php
-rw-r--r--. root root Jun : reg.html
-rw-r--r--. root root Jun : reg.php

用PHP编写登陆界面的更多相关文章

  1. C#登陆界面学习编写 2018.08.03

    简单的登陆界面的编写,在编写如下界面时,设置错误次数上限需要用到静态变量 public static int count;//计算错误次数(为静态变量) 可以防止点击登陆后次数被清空,在登陆后打开新的 ...

  2. 用asp连接Access数据库 制作简单登陆界面

    [题外话:最近做Internet作业,在这写一个适合初学入门的ASP连接ACCESS数据库做登陆界面的简单的例子,以慰藉我一口气把以前做过的系统中的PHP代码全改成ASP代码来临时应付作业的心情... ...

  3. WPF和Expression Blend开发实例:模拟QQ登陆界面打开和关闭特效

    不管在消费者的心中腾讯是一个怎么样的模仿者抄袭者的形象,但是腾讯在软件交互上的设计一直是一流的.正如某位已故的知名产品经理所说的:设计并非外观怎样,感觉如何.设计的是产品的工作原理.我觉得腾讯掌握了其 ...

  4. [Django]登陆界面以及用户登入登出权限

    前言:简单的登陆界面展现,以及用户登陆登出,最后用户权限的问题 正文: 首先需要在settings.py设置ROOT_URLCONF,默认值为: ROOT_URLCONF  = 'www.urls'# ...

  5. outlook 2016 for windows 每次刷新发送接收邮件会弹出登陆界面

    Q: outlook2016 for windows 每次刷新发送接收邮件会弹出登陆界面,office365 ProPlus 都是正常激活了,Word 和Excel都不存在此类问题 A: 排除用户的o ...

  6. python之编写登陆接口(第一天)

    作业:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 针对此实例写了有二种类型的脚本,略有不同,具体如下: 帐号文件account.txt内容如下: sam 123 david ...

  7. javafx之登陆界面的跳转

    界面布局用到的是fxml而非纯java代码,工具是javafx sence builder 账号:account 密码:password 登陆成功: 可以点击退出登陆返回到登陆页面 工程目录: pac ...

  8. Altium Designer15 卡在登陆界面解决办法:

    Altium Designer15 卡在登陆界面解决办法: 在我的电脑系统盘中找到下面目录(注:如果看不到,需要取消隐藏文件选项.) C:\Documents and Settings\Adminis ...

  9. 描述Linux系统开机到登陆界面的启动过程(计时2分钟)

    简述: 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核kernel 5.启动init进程 6.读取inittab文件,执行rc.sysinit,rc等脚本 7.启动minge ...

随机推荐

  1. Too many open files 问题

    1.解决办法 (1)查看 查看当前系统打开的文件数量 lsof | wc -l watch "lsof | wc -l" 查看某一进程的打开文件数量 lsof -p pid | w ...

  2. NSCoder

    person.h头文件内容 #import <Foundation/Foundation.h> @interface Person : NSObject { NSString *name; ...

  3. INSPIRED启示录 读书笔记 - 第3章 产品管理与项目管理

    互联网让两者变得不同 在传统的零售软件领域,产品经理常常兼任项目经理的工作,随着互联网的发展,两者的职责区别也越来越明显 产品管理的职责是探索(定义)有价值的.可用的.可行的产品 项目管理的职责是关注 ...

  4. 斯坦福机器学习视频笔记 Week4 & Week5 神经网络 Neural Networks

    神经网络是一种受大脑工作原理启发的模式. 它在许多应用中广泛使用:当您的手机解释并理解您的语音命令时,很可能是神经网络正在帮助理解您的语音; 当您兑现支票时,自动读取数字的机器也使用神经网络. Non ...

  5. SQL Server 字符串拼接与拆分 string varchar Split and Join

    1.Split    SQL Server 2008 新语法: DECLARE @str VARCHAR(MAX) SET @str = REPLACE(@teeIDs, ',', '''),(''' ...

  6. ViewPagerAdapter

    ) { ; } } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } ...

  7. ASPX一句话爆破工具

    #include "stdafx.h" #include <stdio.h> #include <Windows.h> #include <stdli ...

  8. 求两个有序序列合并成新有序序列的中位数,求第k小数

    此算法涉及一个重要数学结论:如果A[k/2-1]<B[k/2-1],那么A[0]~A[k/2-1]一定在第k小的数的序列当中,可以用反证法证明. 算法思想如下: 1,假设A长度为m,B长度为n, ...

  9. shell基础之书写需要用到的小工具

    一.简单介绍 下面介绍几个可能不太常用但是面试题经常会用用到的小工具: 命令:cut 作用:截取某一个字段 '-d' 后面跟分隔字符,把字段分割为若干个区间. '-c' 后面接的是第几个字符,也可以是 ...

  10. 命令行下载Baiduyun files

    源码 步骤1:先拿到一个插件插件地址1,插件地址2 步骤2:解压并保存 下载的文件中,包含了一个Baidu-PCS的文件夹.然后打开我们的资源管理器.将Baidu-PCS随意移动到一个文件目录下,但文 ...