svn自助修改密碼(PHP指令碼實現),svn指令碼
#建立指令碼目錄
mkdir -p /var/www/svn/svntools
#建立apache設定檔
touch /etc/httpd/conf.d/alias.conf
#輸入以下內容:
Alias /svntools "/var/www/svn/svntools"<Directory "/var/www/svn/svntools"> Require valid-user AuthType Basic AuthName "svn tools" AuthUserFile "/var/www/svn/project/conf/passwd"</Directory>
#重啟apache服務
service httpd restart
#建立修改密碼的php指令碼<?$username = $_SERVER["PHP_AUTH_USER"]; //經過 AuthType Basic 認證的使用者名稱$authed_pass = $_SERVER["PHP_AUTH_PW"]; //經過 AuthType Basic 認證的密碼$input_oldpass = (isset($_REQUEST["oldpass"]) ? $_REQUEST["oldpass"] : ""); //從介面上輸入的原密碼$newpass = (isset($_REQUEST["newpass"]) ? $_REQUEST["newpass"] : ""); //介面上輸入的新密碼$repeatpass = (isset($_REQUEST["repeatpass"]) ? $_REQUEST["repeatpass"] : ""); //介面上輸入的重複密碼$action = (isset($_REQUEST["action"]) ? $_REQUEST["action"] : ""); //以hide方式提交到伺服器的actionif($action!="modify"){$action = "view";}else if($authed_pass!=$input_oldpass){$action = "oldpasswrong";}else if(empty($newpass)){$action = "passempty";}else if($newpass!=$repeatpass){$action = "passnotsame";}else{$action = "modify";}?><html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK"><title>Subversion 線上自助密碼修改</title></head><body><?//action=view 顯示普通的輸入資訊if ($action == "view"){?><script language = "javaScript"><!--function loginIn(myform){var newpass=myform.newpass.value;var repeatpass=myform.repeatpass.value;if(newpass==""){alert("請輸入密碼!");return false;}if(repeatpass==""){alert("請重複輸入密碼!");return false;}if(newpass!=repeatpass){alert("兩次輸入密碼不一致,請重新輸入!");return false;}return true;}//--></script><style type="text/css"><!--table {border: 1px solid #CCCCCC;background-color: #f9f9f9;text-align: center;vertical-align: middle;font-size: 9pt;line-height: 15px;}th {font-weight: bold;line-height: 20px;border-top-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-bottom-style: solid;color: #333333;background-color: f6f6f6;}input{height: 18px;}.button {height: 20px;}--></style><br><br><br><form method="post"><input type="hidden" name="action" value="modify"/><table width="220" cellpadding="3" cellspacing="8" align="center"><tr><th colspan=2>Subversion 密碼修改</th></tr><tr><td>使用者名稱:</td><td align="left"> <?=$username?></td></tr><tr><td>原密碼:</td><td><input type=password size=12 name=oldpass></td></tr><tr><td>使用者密碼:</td><td><input type=password size=12 name=newpass></td></tr><tr><td>確認密碼:</td><td><input type=password size=12 name=repeatpass></td></tr><tr><td colspan=2><input onclick="return loginIn(this.form)" class="button" type=submit value="修 改"><input name="reset" type=reset class="button" value="取 消"></td></tr></table></form><?}else if($action == "oldpasswrong"){$msg="原密碼錯誤!";}else if($action == "passempty"){$msg="請輸入新密碼!";}else if($action == "passnotsame"){$msg="兩次輸入密碼不一致,請重新輸入!";}else{$passwdfile="/var/www/svn/project/conf/passwd";$command='"htpasswd" -b '.$passwdfile." ".$username." ".$newpass;system($command, $result);if($result==0){$msg="使用者[".$username."]密碼修改成功,請用新密碼登陸.";}else{$msg="使用者[".$username."]密碼修改失敗,傳回值為".$result.",請和管理員聯絡!";}}if (isset($msg)){?><script language="javaScript"><!--alert("<?=$msg?>");window.location.href="<?=$_SERVER["PHP_SELF"]?>"//--></script><?}?></body></html>
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。