窓
ユーザーを追加するため、PHP プログラムを実行するユーザーは管理者権限 (Administrator) を持っている必要があり、同時に php.ini のセーフ モードがオンになっていてはならず、system() および exec( ) は、shutdown 関数、passthru() およびその他の関数でオフにしないでください。
csdn フォーラムで同様の質問を見たので、簡単なアイデアである答えを思いつきました。
http://community.csdn.net/Expert/topic/4190/4190360.xml?temp=.7591669
これを実現するには、2 つの方法があります。
1. Web でユーザーを追加します
ユーザーを追加するため、PHP プログラムを実行するユーザーには管理者権限 (Administrator) が必要であり、同時に PHP でセーフ モードが必要です。 ini をオンにしてはなりません。また、system()、exec()、passthru() およびその他の関数はシャットダウン関数内で閉じてはいけません。
(次の手順は Windows2000/Windows サーバーのコンピューター名に関するものです)、次に、これら 2 人のユーザーを管理者グループに追加する必要があります: Administrators。もちろん、これを実行すると、サーバーのセキュリティに脅威が生じます。
1. Apache を Web サーバーとして使用する
私の知る限り、Apache はサービスとしてインストールされた後、システム権限で実行されます。つまり、PHP を実行すると、それを超えたシステム権限が直接付与されます。管理者権限があれば、注文の実行は簡単です。 Apache の実行ユーザーを変更する場合は、Apache サービスの実行ユーザーが管理者またはシステム権限などの管理者以上の権限を持っていることを指定する必要があります。
その後、PHP コードでユーザーの追加操作を実行できます:
投稿者のニーズに従って、次のコードを記述します:
define("USER_GROUP", "users " ); //ユーザーグループ、デフォルトは users です。セキュリティのため、同じユーザーグループを定義しますdefine("ACTIVE", "YES") //ユーザーを作成後に直接アクティブ化するかどうか、YES はアクティブ化を意味し、NO は非アクティブ化を意味します。
//データベースからユーザー名とパスワードを抽出します
//テーブルが user_info であり、フィールドが id、user、password のみであると仮定します$sql = "SELECT user,password FROM user_info";
//ループにユーザーを挿入しますwhile ($array = mysql_fetch_array($result)) {
if (!function_exists("system"))
die('Function system() が存在しないため、ユーザーの追加に失敗しました。');
//ユーザーを追加
@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");
}
?>
上記コードはすべてのデータベースの統合を実現します。ユーザーはローカル システムに追加されます。ユーザーを個別に追加したい場合は、ユーザー登録が成功した後にユーザーを追加するように変更することを検討してください。
2番目に、phpをシェルスクリプトとして使用してユーザーを追加します
さらに、実はもう一つアイデアがあります。サーバー側のphp.exeを使用して実行でき、セキュリティ上の問題はありません。たった今テストを受けたところ、合格しました。php が c:php にインストールされていると仮定すると、コマンド プロンプトを使用して php スクリプトを実行し、ユーザーを追加します。
//c:test.php
@system("net user heiyeluren test /add");?>c:test.php ファイルに保存
cmd 実行の下:
c:phpphp.exe c:test.php
プロンプト:
C:>c:phpphp.exe c:test.php
コマンドは正常に完了しました。
この観点から見ると、上で書いたコードをここに持ってきて実行すると、php.exe がシェル スクリプト エンジンとして機能します。次に、それをバッチ プロセスとして作成し、スケジュールされたタスクを通じて実行します。もちろん、vb/vc などの他の言語を使用して実装することも検討できます。データベースを定期的に検索して、新しく追加されたユーザーがあるかどうかを確認し、ユーザーをシステムに追加します。