用PHP编写登陆界面

Posted hengzi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用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

 

以上是关于用PHP编写登陆界面的主要内容,如果未能解决你的问题,请参考以下文章

用java写一个登陆界面代码。

求html登陆界面详细代码 要可以登陆,用数据库保存

求html登陆界面详细代码 要可以登陆,用数据库保存

PHP必用代码片段

JSP编写一个登陆界面

用java编写一个“我的日记”的界面并使其实现写日记的功能, 最好含有登陆界面的