如何使用PHP往windows中添加用户


Posted in PHP onDecember 06, 2006

方法有一:  

因为添加用户,所以你运行PHP程序的用户必须是管理员权限(Administrator),并且同时需要你的php.ini中的安全模式没有打开,并且关闭函数中没有关闭system()、exec()、passthru()等函数。  

( 以下说明针对Windows2000/Windows XP/Windows 2003 )  
一、使用IIS做Web服务器  
如果是使用IIS做服务器的话,那么运行PHP的帐户就是:IUSR_XXXXXXXX,IWAM_XXXXXXX,(XXXX代表服务器的计算机名),那么你必须把这两个用户加到管理员组:Administrators 。当然,你这样做的话,会给服务器安全带来威胁。  

二、使用Apache作为Web服务器  
据了解,Apache安装成服务以后,那么就是以system权限运行的,那么就是说PHP运行的话,直接就是系统权限,已经超过了管理员权限,那么执行命令更不再话下。如果你修改了Apache的运行用户,那么你必须指定Apache服务运行用户是管理员以上权限,比如Administor或者system权限。  
然后你就可以在你的PHP代码中执行添加用户操作了:  
描述如下代码:  

<?php  
define("USER_GROUP", "users"); //用户组,默认为users,为了安全,定义还是的用户组  
define("ACTIVE", "YES"); //是否创建后直接激活用户,YES为激活,NO为不激活  

//从数据库提取用户名和密码  
//假设表为user_info,并且只有字段id, user, passwod  
$sql = "SELECT user,password FROM user_info";  
$result = mysql_query($sql) or die("Query database failed");  
//循环插入用户  
while ($array = mysql_fetch_array($result)) {  
if (!function_exists("system"))  
die('Function system() not exists, add user failed.');  
//添加用户  
@system("net user $array[user] $array[passwd] /active:ACTIVE /add");  
//添加到指定组  
@system("net localgroup users $array[user] /del");  
@system("net localgroup USER_GROUP $array[user] /add");  
}  
?> 

以上代码实现了把你所有数据库的用户添加到本地系统,如果你想单个的添加,可以考虑更改成用户注册成功后就添加用户,这个可以自己扩展。  

不过,此方法不能实现同步  

方法二:  
可以在服务器端利用php.exe来执行,并且不会有安全问题。  

假设你的php安装在c:\php\中,那么我们就使用命令提示符的来执行php脚本来添加用户。  

PHP代码:  
//c:\test.php  
<?php  
@system("net user test test /add");  
?>  
保存在c:\test.php文件中  
在cmd下执行:  
c:\php\php.exe c:\test.php  
提示:  
C:\>c:\php\php.exe c:\test.php  
命令成功完成。  

再将方法一中的那段代码拿到这里来执行,然后php.exe充当shell脚本引擎。然后写成批处理,通过定时任务来执行。当然,也可以考虑使用其他语言来实现,比如vb/vc之类的,定期去数据库中检索是否有新添加的用户,然后再把用户添加到系统中。

PHP 相关文章推荐
理解PHP5中static和const关键字的区别
Mar 19 PHP
PHP优于Node.js的五大理由分享
Sep 15 PHP
如何判断php数组的维度
Jun 10 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
Jul 15 PHP
为PHP5.4开启Zend OPCode缓存
Dec 26 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
Oct 10 PHP
php 实现进制相互转换
Apr 07 PHP
php中final关键字用法分析
Dec 07 PHP
PHP解决中文乱码
Apr 28 PHP
详细解读php的命名空间(二)
Feb 21 PHP
ThinkPHP 5.x远程命令执行漏洞复现
Sep 23 PHP
Laravel实现搜索的时候分页并携带参数
Oct 15 PHP
php巧获服务器端信息
Dec 06 #PHP
Apache2 httpd.conf 中文版
Dec 06 #PHP
PHP 字符串操作入门教程
Dec 06 #PHP
让你的网站首页自动选择语言转跳
Dec 06 #PHP
PHP经典的给图片加水印程序
Dec 06 #PHP
echo, print, printf 和 sprintf 区别
Dec 06 #PHP
PHP数字格式化
Dec 06 #PHP
You might like
最令PHP初学者们头痛的十四个问题
2007/01/15 PHP
精通php的十大要点(上)
2009/02/04 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
PHP将字符串首字母大小写转换的实例
2017/01/21 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
js实现的点击div区域外隐藏div区域
2014/06/30 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
2016/07/07 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
微信小程序调用PHP后台接口 解析纯html文本
2017/06/13 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
python文件写入实例分析
2015/04/08 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
2019/03/20 Python
Python爬虫之urllib基础用法教程
2019/10/12 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
2019/12/11 Python
Python和Anaconda和Pycharm安装教程图文详解
2020/02/04 Python
零基础学python应该从哪里入手
2020/08/11 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
犹他州最古老的体育用品公司:Al’s
2020/12/18 全球购物
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
乐观大学生的自我评价
2014/01/10 职场文书
三个儿子教学反思
2014/02/03 职场文书
行政专员岗位职责说明书
2014/07/30 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
员工年终考核评语
2014/12/31 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
Mysql分库分表之后主键处理的几种方法
2022/02/15 MySQL