apache+php+sql的登陆界面的设计

2022-05-23 17:27:17   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《apache+php+sql的登陆界面的设计》,欢迎阅读!
面的,登陆,apache,设计,php






课程设计 Apache+PHP+mySOL开发邮件 注册管理系统 级: 材控01 名: 徐观岳 号: 1203100124










1.1用户注册与在P船中执行系统外部命令................1

1.2建立新系统用户....................................2 1.3应用管道为用户设置密码............................2 1.4将用户记录写^数据库...............................3



2.1注销系统用户与后台批处理程序......................4 2.2用户记录与系统用户一致性检验......................5

2.2.1读取、ETC、怕熟视无睹文件取得系统用户名.......5

2.2.2读取设置为无效的用户记录..........................................6

2. 2.3一致性检验和删除无效的用户记录 .......................7 2.3邮件帐号管理程序的安全访问.......................7

2.4 小结...........................................8








Apache+PHP+mySOL开发邮件注册管理系统



1.1用户注册与在P船中执行系统外部命令

用户注册程序包括用户提交注册信息、数据有效性和唯一性检验、增加新系统用户(即邮件帐号)、设置用户密码、保存用户记录等过程

与用户管理有关的系统外部命令分别为useradduserdel passwdchpasswd等这些外部命令必须是root用户才可运行。

PHP运行系统外部命令的函数有exec()system()popen().本来希望通过su来获取root身份执行系统外部命令”su一一login rootc COMMAND,但经反复实践行不通,原因是su命令必须在标准输入设备stdin上输入root的密码。

解决的简单方法是应用super工具来帮助以root身份执行设定的系统外部命令。super工具可从ftp//ftpMdtsoft.com/pub/super下裁并安装。在配置文件/etc/super.tab中将设置可以root身份执行的外部命令和可以使用super的用户列表。例如,配置文件/etc/super.tab内容为:

Myadduser/usr/sbin/useradd nobody Mychpasswd/use/sbin/chpasswd nobody




这样.web用户,nobody就可以分别使用super myaddusersuper mychpasswd增加新系统用户和设置用户密码了。 例如.增加新系统用户“linfei’可简单执行PHp命令 System(“/binsuper myadduser linfei) 即可。将用户“linfei”的密码设置为“1234”,需要使用管 道命令popensuper myadduser提供用户名和密码参数 “linfei1234”才可完成:

S cmd2 = popen(/bin/super mychpasswd,w); fputs( $ cmd2,linfei;1234); fputs( $ cmd2,/ n/); pclose( $ cmd2);

假设已定义MysQL数据库post__office及其users巧数据表数据表users包过no(序号)valid(有效性)name(姓名)userid(帐号)password(密码)等域。用户注册程序主要代码如下:

1.1 P//(1>用户提交数据厦有效性和唯一性检验 1.2//<2>建立新系统用户

$ cmd = escapeshellcmd(/bin/super myadduser $ userid - g$grouprumme); System($ cmd2, $ resl); If($res1! = 0){


echo”系统设置邮件帐号不成功l返回码$ res1)!; Exit:}

//(1.3>应用管道为用户设置密码

$ cmd2 = popen (/bin/super mychpasswdw); Fputs ( $ cmd2,$ userid; $ password); Fputs( $ cmd2, /n); Pclose($ cmd2);

//<1.4)将用户记录写^数据库

$ Myconnet=mysql__connect(localhost,root,$ mysqlroot);

$ db=mysql__select__db(post__sffice, $ Myconnect); $ mydate = date(Y-m-d H;i;s); $ sql = insert into users;

$ sql = $ sql .( class,name,address,phone,userid,password,date); $ sql = 4sql,Values ( $ class , $ name , $ address , $ phone, $userid , $ password , $ mydate ) ;

$ Myquery = masql__query ( $ sql ,$ Myconnect ) ; 2.1 注销系统用户与后台批处理程序

因用户注册过程是公开且自动的,难免会产生大量不合理的用户帐号,需要适时注销清理。为了安全与高教,系统采用管理员在后台执行批处理程序的方法来注销系统用户。首先,管理员浏览用户注册信息将需要注销的不合理用户记录标记为无效,即将valid字段缺省


值’yes’清除。其次,执行如下程序代码,将无效记录中的帐号提取生成一文本文件保存在/tmp/invalid.txt中: < ?

$ filename = / tmp /invalid.txt ;

$ Myconnect = mysql __connecy (localhost , root , $ mysqlroot ) ; $ db = masql__select__db( post__office , $ myconnect ) ; $ sql = select no , userid ,class,name from users valid<>yes ; $ Myquery = mysql__query ( $ sql , $ mYCONNECT); $ FP = FOPEN 9 $ FILENAME , W );

While ( $ array = mysql__fetch __array( $ Myquery); Fputs ( $ fp , $ arry[no]/t $ arry [ userid] / n ); Fclose( $ fp); ? >

最后,管理员在邮件服务器上以root身份登录,执行下awk批处理程序命令:

^awk -f deuser.awk/tmp/invalid .txt 1 sh

即可一次性将大量不合理的用户帐号注销。其中.deluser. awk程序文件内容如下: {print userdel $ 2 } {print mm - rf /home / $ 2 } 2.2用户记录与系统用户一致性检验

从数据库post__office中清理无效用户记录(vaIid<>yes)时,


必须进行用户记录与系统用户一致性捡验工作以保证先注销系统用户后才能清理数据库记录。换句话说,一致性检验的目的就是保证通WEB注册的系统用户在数据库post__office都有记录记载。 一致性检验的过程是先从/etc/passwd读取系统用户.再从数据库post__office读取无效用户记录(vaIid<>yes)的帐号来逐一比较,如果该甩户帐号巳从系统中注销,才可将相应记录删除。

主要程序代码如下:

//<2.2.1> 读取、ETC、怕熟视无睹文件取得系统用户名 ?<

$ filename = / tmp /invalid.txt ;

$ Myconnect = mysql __connecy (localhost , root , $ mysqlroot ) ; $ db = masql__select__db( post__office , $ myconnect ) ; $ sql = select no , userid ,class,name from users valid<>yes ; $ Myquery = mysql__query ( $ sql , $ mYCONNECT); $ FP = FOPEN 9 $ FILENAME , W ); //<2.2.2> 读取设置为无效的用户记录 $ mydate = date(Y-m-d H;i;s); $ sql = insert into users;

$ sql = $ sql .( class,name,address,phone,userid,password,date); $ sql = 4sql,Values ( $ class , $ name , $ address , $ phone,


$userid , $ password , $ mydate ) ;

$ Myquery = masql__query ( $ sql ,$ Myconnect ) //<2.2.3> 一致性检验和删除无效的用户记录 $ db=mysql__select__db(post__sffice, $ Myconnect); $ mydate = date(Y-m-d H;i;s); $ sql = insert into users;

$ sql = $ sql .( class,name,address,phone,userid,password,date); $ sql = 4sql,Values ( $ class , $ name , $ address , $ phone, $userid , $ password , $ mydate ) ;

$ Myquery = masql__query ( $ sql ,$ Myconnect ) ; >

2.3邮件帐号管理程序的安全访问

邮件帐号管理程序应存放在与用户注册程序不同的路径中,并只能通认证来访问,下面介绍采用Apache服务器内置的HttP认证功能来简单实现认证访问的步骤。假设邮件帐号管理程序存放在路径/home/httpd/html/post__damin中只有用户“admin”才能访问。 首先,在/etc/httpd/conf下建立一个需认证用户文件 user.txt : Htpasswd c user .txt admin

其次,配置该路径下的access.conf 文件,增加一个志段:

$ sql = $ sql .( class,name,address,phone,userid,password,date); $ sql = 4sql,Values ( $ class , $ name , $ address , $ phone,


$userid , $ password , $ mydate ) ;

$ Myquery = masql__query ( $ sql ,$ Myconnect ) ;

最后,执行Apachectl restart 重新启动Apache服务器使上述设置生效



2.4 小结

文中所述的SFSL的开发模型,将它应用internet上,可以使软件开发人员避免通过手工改动所造成的错误,而且能够快速的设计需求分析,及时的了解用户的需要。


本文来源:https://www.wddqxz.cn/254fa81d40323968011ca300a6c30c225901f0b4.html

相关推荐