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

來源:互聯網
上載者:User

方法有一:

因為添加使用者,所以你運行PHP程式的使用者必須是管理員權限(Administrator),並且同時需要你的php.ini中的安全模式沒有開啟,並且關閉函數中沒有關閉system()、exec()、passthru()等函數。

( 以下說明針對Windows2000/Windows XP/Windows 2003 )
一、使用IIS做Web伺服器
如果是使用IIS做伺服器的話,那麼運行PHP的帳戶就是:IUSR_XXXXXXXX,IWAM_XXXXXXX,(XXXX代表格服務器的電腦名稱),那麼你必須把這兩個使用者加到Administrator 群組: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之類的,定期去資料庫中檢索是否有新添加的使用者,然後再把使用者添加到系統中。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.