您的位置:首页 > 编程语言 > PHP开发

PHP+MYSQL用户登录程序示例

2012-09-05 12:43 369 查看
一个用户登陆程序不单单是判断用户是否合法,还应该实现一些其它的功能。比如用SESSION保存用户信息等,提供给用户一些方便之处。

我尝试做了一个用户登陆程序,基本上实现了用户输入的合法性检查,用户的合法性检查,用户对其他页面访问的合法性检查,长时间未操作要求用户重新登陆的功能等等。

本程序块由以下部分组成:

db.inc 数据库连接的配置信息

may.inc 判断用户对页面的访问是否允许(长时间未操作要求用户重新登陆的功能).

session.inc 设置session的一些配置信息

login.php 用户登陆主文件

这个文件需要实现的功能包括:

一:检验用户输入数据的合法性

二:连接数据库,检查用户的合法性

三:为合法访问设置会话

以下是具体文件说明:

db.inc

//这里是数据库连接的配置信息db.inc

$db_host="localhost";

$db_user="db_user";

$db_password="db_password";

$db_name="db_name";

$user_table="user_table";

$access_table="access_table";

//可以在这里插入其它配置信息

上面文件的右边内容为用户自定义内容

如我们建立如下的用户表

CREATE TABLE access (

ID int(6) NOT NULL auto_increment,

username varchar(9) NOT NULL,

password varchar(9) NOT NULL,

enable tinyint(1) DEFAULT '0' NOT NULL,

PRIMARY KEY (ID)

);

则db.inc中$user_table="user_table";一句应该改为$user_table="access";

其它内容也是如此.

这样做的目的是为了提供一个方便管理的接口.

session.php

//这里是SESSION.PHP

//设置SESSION的配置文件

session_start();

session_register('s_username');

session_register('time_last_load');

$s_username=$username;

$time_last_load=time();

//在这里可以继续补充其它设置,以实现需要的功能

may.inc

//这里是MAY.INC

//用来判断用户访问的合法性的函数

if(!isset($s_username))

{

$info="你还没有登陆,请先登陆";

header("location:login.php?info=$info");

exit;

}

else

{

$time_now=time();

//$time_last_load 为SESSION中注册的变量

$time_interval=$time_now-$time_last_load;

if($time_interval>600)

{

$info="你的帐号闲置过久,请重新登陆";

session_destroy;

header("location:login.php?info=$info");

exit;

}

$time_last_load=time();

}

login.php

//这里是用户登陆文件LOGIN.PHP

//这个文件需要实现的功能包括:

//一:检验用户输入数据的合法性

//二:连接数据库,检查用户的合法性

//三:为合法访问设置会话

//*****************************************

include("db.inc");

if(isset($login)) //LOGIN为登陆按钮的NAME属性

{

if($username=="")

{

$info="请输入会员名";

header("location:login.php?info=$info");

exit;

}

else if($password=="")

{

$info="请输入密码";

header("location:login.php?info=$info");

exit;

}

else

{

$link=mysql_connect($db_host,$db_user,$db_password);

$db=msql_select_db($db_name,$link);

$query="select password,enable from $user_table

where username=$username";

$result=mysql_query($query);

if($result)

{

$row=mysql_fetch_array($result);

$member_password=$row[0];

$member_enable=$row[1];

mysql_close($link);

if($member_password!=$password)

{

$info="密码不正确,请重新输入";

header("location:login.php?info=$info");

exit;

}

else if($member_enable==0)

{

$info="帐号失效,请联系管理员";

header("location:login.php?info=$info");

exit;

}

else

{

$info="登陆成功";

include("session.inc");

header("location:index.php?info=$info");

exit;

}

} //结束 if($result) 语句块

else

{

mysql_close($link);

$info="用户不存在,请先注册";

header("location:register.php?info=$info");

exit;

}

}

} //结束if(isset($login))语句块

网页制作自行解决
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: