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

时间:2022-05-23 17:27:17 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。






课程设计: 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.wddqw.com/doc/254fa81d40323968011ca300a6c30c225901f0b4.html