如何使用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中MVC结构学习
Oct 09 PHP
php中url传递中文字符,特殊危险字符的解决方法
Aug 17 PHP
php使用递归计算文件夹大小
Dec 24 PHP
php验证码生成代码
Nov 11 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
Dec 07 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
Jul 18 PHP
php 使用html5实现多文件上传实例
Oct 24 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
Sep 01 PHP
php使用imagecopymerge()函数创建半透明水印
Jan 25 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
Dec 24 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 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
多重?l件?合查?(一)
2006/10/09 PHP
php xml文件操作实现代码(二)
2009/03/20 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
php-fpm中max_children的配置
2019/03/15 PHP
jquery attr 设定src中含有&amp;(宏)符号问题的解决方法
2011/07/26 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
2017/02/22 Javascript
Vue 实现树形视图数据功能
2018/05/07 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
M2实现Nodejs项目自动部署的方法步骤
2019/05/05 NodeJs
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python之Web框架Django项目搭建全过程
2017/05/02 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
Python常用数据分析模块原理解析
2020/07/20 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
2021/01/22 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
哥伦比亚最大的网上商店:Linio哥伦比亚
2016/09/25 全球购物
旅游管理毕业生自荐信
2013/11/05 职场文书
2015年检验员工作总结范文
2015/04/30 职场文书
法制教育观后感
2015/06/17 职场文书
学雷锋感言
2015/08/03 职场文书
详解如何用Python实现感知器算法
2021/06/18 Python
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby