方法有一:
因為添加用戶,所以你運行PHP程式的用戶必須是管理員權限(Administrator),並且同時需要你的php.ini中的安全模式沒有打開,並且關閉函數中沒有關閉system()、exec()、passthru()等函數。
( 以下說明針對Windows2000/Windows XP/Windows 2003 )
一、使用IIS做Web伺服器
如果是使用IIS2SXXXXXXXXX (XXXX代表伺服器的電腦名稱),那麼你必須把這兩個使用者加到管理員群組:Administrators 。當然,你這麼做的話,會為伺服器安全帶來威脅。
二、使用Apache作為Web伺服器
據了解,Apache安裝成服務以後,那麼就是以system權限運作的,那麼就是說PHP運作的話,直接就是系統權限,已經超過了管理員權限,那麼執行指令就更不再話下。如果你修改了Apache的運行用戶,那麼你必須指定Apache服務運行用戶是管理員以上權限,例如Administor或system權限。
然後你就可以在你的PHP程式碼中執行新增使用者操作了:
描述以下程式碼:
//從資料庫擷取使用者名稱與密碼
//假設表為user_info,且只有欄位id, user, passwod
user_info";
$result = mysql_query($sql) or die("Query database failed");
//循環插入使用者
while die('Function system() not exists, add user failed.'); //新增至指定群組
@system("net localgroup users $array[user] /del"); localgroup users $array[user] /del"); "net localgroup USER_GROUP $array[user] /add");
}
?>
以上程式碼實現了將你所有資料庫的使用者加入單一本機系統,如果你想新增單一的新增程式,可以考慮更改成用戶註冊成功後就加入用戶,這個可以自己擴充。
不過,此方法無法實現同步
方法二:
可以在伺服器端利用php.exe來執行,且不會有安全性問題。
假設你的php安裝在c:php中,那麼我們就使用指令提示字元來執行php腳本的使用者。
PHP程式碼:
//c:test.php
@system("net user test test /add");在c:test.php檔案中
在cmd下執行:
c:phpphp.exe c:test.php
提示:
C:>c:phpphp.exe c:test.
指令成功完成。
再將方法一中的那段程式碼拿到這裡來執行,然後php.exe充當shell腳本引擎。然後寫成批次處理,透過定時任務來執行。當然,也可以考慮使用其他語言來實現,例如vb/vc之類的,定期去資料庫中檢索是否有新新增的用戶,然後再把用戶加入系統。
http://www.bkjia.com/PHPjc/317278.html
www.bkjia.com