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

如何使用PHP往windows中添加用户,第1张

方法有二。

一、再Web中添加用户

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

( 以下说明针对Windows2000/Windows XP/Windows 2003 )

1、使用iis(微软的WEB服务器平台)做Web服务器

如果是使用iis(微软的WEB服务器平台)做服务器的话,那么运行php(做为现在的主流开发语言)的帐户就是:IUSR_XXXXXXXX,IWAM_XXXXXXX,(XXXX代表服务器的计算机名),那么你必须把这两个用户加到管理员组:Administrators 。当然,你这样做的话,会给服务器安全带来威胁。

1、使用apache(Unix平台最流行的WEB服务器平台)作为Web服务器

据我了解,apache(Unix平台最流行的WEB服务器平台)安装成服务以后,那么就是以system权限运行的,那么就是说php(做为现在的主流开发语言)运行的话,直接就是系统权限,已经超过了管理员权限,那么执行命令更不再话下。如果你修改了apache(Unix平台最流行的WEB服务器平台)的运行用户,那么你必须指定apache(Unix平台最流行的WEB服务器平台)服务运行用户是管理员以上权限,比如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(和PHP搭配之最佳组合)_query($sql) or die("Query database failed")

//循环插入用户

while ($array = MySQL(和PHP搭配之最佳组合)_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(做为现在的主流开发语言)做shell脚本来添加用户

另外,其实我还有个思路。可以在服务器端利用php(做为现在的主流开发语言).exe来执行,并且不会有安全问题。我刚做了测试,已经通过。

假设你的php(做为现在的主流开发语言)安装在c:php(做为现在的主流开发语言)中,那么我们就使用命令提示符的来执行php(做为现在的主流开发语言)脚本来添加用户。

php(做为现在的主流开发语言)代码:

//c: est.php(做为现在的主流开发语言)

<?php(做为现在的主流开发语言)

@system("net user heiyeluren test /add")

?>

保存在c: est.php(做为现在的主流开发语言)文件中

在cmd下执行:

c:php(做为现在的主流开发语言)php(做为现在的主流开发语言).exe c: est.php(做为现在的主流开发语言)

提示:

C:>c:php(做为现在的主流开发语言)php(做为现在的主流开发语言).exe c: est.php(做为现在的主流开发语言)

命令成功完成。

那么从这个角度出发,完全可以将上面我写的那段代码拿到这里来执行,然后php(做为现在的主流开发语言).exe充当shell脚本引擎。然后写成批处理,通过定时任务来执行。当然,也可以考虑使用其他语言来实现,比如vb/vc之类的,定期去数据库中检索是否有新添加的用户,然后再把用户添加到系统中。

表单页面:

<form action="login.php" method="post">

用户名:<input type="text" name="user" /><br/>

密 码:<input type="password" name="pass" /><br/>

<button type="submit">登录</button>

</form>

登录处理页面login.php

<?php

mysql_connect(数据库服务器,数据库登录用户名,数据库密码)//建立临时数据库连接

mysql_select_db(数据库名称)

$user=$_POST['user']//取得表单输入的用户名

$pass=$_POST['pass']//取得表单输入的密码

$sql="select * from 数据表名称 where user='$user'"//构造Sql查询语句

if(!mysql_query($sql)){//如果执行Sql语句不成功

exit( '用户名错误')

}

$sql="select * from 数据表名称 where user='$user' and pass='$pass'"//构造Sql查询语句

if(!mysql_query($sql)){//如果执行Sql语句不成功

exit( '密码错误')

}

//这里写登录成功的逻辑代码//

?>

随便写了一下,没测试。不见得一定能成功!

但格式语法差不多就是这样,我只是想给你一个样式而已!

具体你还要自己多多学习!

推荐问题里又见到你的问题了。。呵呵

你的意思就是普通用户有几种权限。我拿管理员来说吧,超级管理员可以有增加用户,增加信息,增加新闻几种权限,普通管理员只有可以增加信息。

先从数据库写一个表,表信息如下

你可以设一个表

CREATE TABLE `admin` (

`id` int(11) NOT NULL auto_increment,

`adminname` varchar(11) default NULL,

`password` varchar(100) default NULL,

`userflag` int(1) default 0, //增加用户的权限,0是没有权限,1是有权限

`newsflag` int(1) default 0, //增加新闻的权限,0是没有权限,1是有权限

`messageflag` int(1) default 0 //增加信息的权限,0是没有权限,1是有权限

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8

超级管理员你可以直接在数据库里增加一个 userflag ,newsflag,messageflag全部是1

test.PHP

判断是否有权限

define("DB_ADDRESS","localhost")

define("DB_USER","root")

define("DB_PWD","123456")

define("DB","library")

mysql_connect(DB_ADDRESS,DB_USER,DB_PWD)

mysql_select_db(DB)

$result=mysql_query("select from admin where name="", and password=""")

$row=mysql_fetch_array($result)

if($row['userflag']==1 &&$row['messageflag']==1 &&$row['newsflag']==1)

{

echo "你是超级管理员"

}

if($row['userflag']==1 ){

echo "你是可以增加用户的管理员"

}

希望你能明白了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11414375.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存