#创建脚本文件夹

mkdir -p /var/www/svn/svntools

#创建apache配置文件

touch /etc/httpd/conf.d/alias.conf

#输入下面内容:

  1. Alias /svntools "/var/www/svn/svntools"
  2. <Directory "/var/www/svn/svntools">
  3. Require valid-user
  4. AuthType Basic
  5. AuthName "svn tools"
  6. AuthUserFile "/var/www/svn/project/conf/passwd"
  7. </Directory>

#重新启动apache服务

service httpd restart

  1. #创建改动password的php脚本
  2. <?
  3. $username = $_SERVER["PHP_AUTH_USER"]; //经过 AuthType Basic 认证的用户名
  4. $authed_pass = $_SERVER["PHP_AUTH_PW"]; //经过 AuthType Basic 认证的password
  5. $input_oldpass = (isset($_REQUEST["oldpass"]) ? $_REQUEST["oldpass"] : ""); //从界面上输入的原password
  6. $newpass = (isset($_REQUEST["newpass"]) ? $_REQUEST["newpass"] : ""); //界面上输入的新password
  7. $repeatpass = (isset($_REQUEST["repeatpass"]) ? $_REQUEST["repeatpass"] : ""); //界面上输入的反复password
  8. $action = (isset($_REQUEST["action"]) ? $_REQUEST["action"] : ""); //以hide方式提交到server的action
  9. if($action!="modify"){
  10. $action = "view";
  11. }
  12. else if($authed_pass!=$input_oldpass){
  13. $action = "oldpasswrong";
  14. }
  15. else if(empty($newpass)){
  16. $action = "passempty";
  17. }
  18. else if($newpass!=$repeatpass){
  19. $action = "passnotsame";
  20. }
  21. else{
  22. $action = "modify";
  23. }
  24. ?>
  25. <html>
  26. <head>
  27. <meta http-equiv="Content-Type" content="text/html; charset=GBK">
  28. <title>Subversion 在线自助password改动</title>
  29. </head>
  30. <body>
  31. <?
  32.  
  33. //action=view 显示普通的输入信息
  34. if ($action == "view"){
  35. ?>
  36. <script language = "javaScript">
  37. <!--
  38. function loginIn(myform)
  39. {
  40. var newpass=myform.newpass.value;
  41. var repeatpass=myform.repeatpass.value;
  42. if(newpass==""){
  43. alert("请输入password!
  44.  
  45. ");
  46. return false;
  47. }
  48. if(repeatpass==""){
  49. alert("请反复输入password!
  50.  
  51. ");
  52. return false;
  53. }
  54. if(newpass!=repeatpass){
  55. alert("两次输入password不一致,请又一次输入!");
  56. return false;
  57. }
  58. return true;
  59. }
  60. //-->
  61. </script>
  62. <style type="text/css">
  63. <!--
  64. table {
  65. border: 1px solid #CCCCCC;
  66. background-color: #f9f9f9;
  67. text-align: center;
  68. vertical-align: middle;
  69. font-size: 9pt;
  70. line-height: 15px;
  71. }
  72. th {
  73. font-weight: bold;
  74. line-height: 20px;
  75. border-top-width: 1px;
  76. border-right-width: 1px;
  77. border-bottom-width: 1px;
  78. border-left-width: 1px;
  79. border-bottom-style: solid;
  80. color: #333333;
  81. background-color: f6f6f6;
  82. }
  83. input{
  84. height: 18px;
  85. }
  86. .button {
  87. height: 20px;
  88. }
  89. -->
  90. </style>
  91. <br><br><br>
  92. <form method="post">
  93. <input type="hidden" name="action" value="modify"/>
  94. <table width="220" cellpadding="3" cellspacing="8" align="center">
  95. <tr>
  96. <th colspan=2>Subversion password改动</th>
  97. </tr>
  98. <tr>
  99. <td>用户名:</td>
  100. <td align="left"> <?
  101.  
  102. =$username?
  103.  
  104. ></td>
  105. </tr>
  106. <tr>
  107. <td>password:</td>
  108. <td><input type=password size=12 name=oldpass></td>
  109. </tr>
  110. <tr>
  111. <td>用户password:</td>
  112. <td><input type=password size=12 name=newpass></td>
  113. </tr>
  114. <tr>
  115. <td>确认password:</td>
  116. <td><input type=password size=12 name=repeatpass></td>
  117. </tr>
  118. <tr>
  119. <td colspan=2>
  120. <input onclick="return loginIn(this.form)" class="button" type=submit value="修 改">
  121. <input name="reset" type=reset class="button" value="取 消">
  122. </td>
  123. </tr>
  124. </table>
  125. </form>
  126. <?
  127. }
  128. else if($action == "oldpasswrong"){
  129. $msg="原password错误!";
  130. }
  131. else if($action == "passempty"){
  132. $msg="请输入新password。";
  133. }
  134. else if($action == "passnotsame"){
  135. $msg="两次输入password不一致。请又一次输入。";
  136. }
  137. else{
  138. $passwdfile="/var/www/svn/project/conf/passwd";
  139. $command='"htpasswd" -b '.$passwdfile." ".$username." ".$newpass;
  140. system($command, $result);
  141. if($result==0){
  142. $msg="用户[".$username."]password改动成功。请用新password登陆.";
  143. }
  144. else{
  145. $msg="用户[".$username."]password改动失败。返回值为".$result.",请和管理员联系!
  146.  
  147. ";
  148. }
  149. }
  150. if (isset($msg)){
  151. ?
  152.  
  153. >
  154. <script language="javaScript">
  155. <!--
  156. alert("<?=$msg?>");
  157. window.location.href="<?=$_SERVER["PHP_SELF"]?>"
  158. //-->
  159. </script>
  160. <?
  161. }
  162. ?>
  163. </body>
  164. </html>

svn自助改动password(PHP脚本实现)的更多相关文章

  1. python+paramiko库+svn写的自动化部署脚本

    第一篇博文 直接开门见山的说了. 这是件什么事?:每次部署都是复制本地的文件粘贴到服务器端,因为路径复杂,所以费时且手工容易出漏洞. 一直在想有什么办法可以解决这种,因为以前在微软的一个牛人同事做过一 ...

  2. linux上MySQL改动password的各种方法,yc整理

    MySQL改动password的各种方法 整理了下面四种在MySQL中改动rootpassword的方法,可能对大家有所帮助! 方法1: 用SET PASSWORD命令 mysql -uroot my ...

  3. MySQL加入服务、设置password、改动password

    修正:加入MySQL服务时,能够不带版本.也就说以下的全部MySQL57能够直接写成MySQL!希望大家注意. MySQL安装好之后,往往还须要再做一些设置! 1.加入MySQL服务: 输入命令cmd ...

  4. SVN与TFS自动同步脚本(很实用)

    一直都在园子里看文章,因为各种原因懒得写文章.最近稍得空闲,把这几天的工作成果分享一下. 因为工作需要,开发人员使用Qt进行系统移动端的开发,Qt的版本控制却不提供连接TFS的设置,只有使用svn.没 ...

  5. svn代码发版的脚本分享

    背景:开发将其代码放到svn里面,如何将修改后存放到svn里的代码发布到线上?简单做法:写个shell脚本,用于代码发版.比如开发的代码存放svn的路径是:svn://112.168.19.120/h ...

  6. svn备份与还原_脚本_(dump命令)

    今天备份svn, 能保证好用就行先, 回头再研究 buerguo.bat @echo off :: 关闭回显 :: 说明:如有命令不明白,请使用帮助命令:命令/? .如:for/? :: 设置标题 t ...

  7. 取消SVN版本号控制的bash脚本

    原理非常easy,递归删除当前文件夹下全部的 .svn 文件. 把 .svn 换成 .git 就可以用于删除 git 控制

  8. VisualSVN Server 改动用户password

    VisualSVN Server是很方便好用的SVNserver端软件.但有个问题,你在server端创建了usernamepassword后,用户无法自己改动password.据说VisualSVN ...

  9. MySQL 改动用户password及重置rootpassword

    为数据库用户改动password是DBA比較常见的工作之中的一个.对于MySQL用户账户的password改动,有几种不同的方式.推荐的方式使用加密函数来改动password. 本文主要描写叙述了通过 ...

随机推荐

  1. Opencv学习笔记5:Opencv处理彩虹图、铜色图、灰度反转图

    一.概述: 人类能够观察到的光的波长范围是有限的,并且人类视觉有一个特点,只能分辨出二十几种灰度,也就是说即使采集到的灰度图像分辨率超级高,有上百个灰度级,但是很遗憾,人们只能看出二十几个,也就是说信 ...

  2. windows下整数溢出分析

    0x00前言 整数溢出就是往存储整数的内存单位存放的数据大于该内存单位所能存储的最大值,整数溢出有时候间接导致缓冲区溢出.如JPEG溢出漏洞(MS04-028). 0x01整数溢出分类 整数溢出可以分 ...

  3. [CodeChef-QTREE]Queries on tree again!

    题目大意: 给定一个环长为奇数的带权基环树,支持以下两种操作: 1.两点间最短路取反: 2.两点间最短路求最大子段和. 思路: 首先找出环,然后对每一个外向树轻重链剖分, 用线段树维护每一个区间的和. ...

  4. web文件上传组件比较jQuery File Upload和Fine Uploader

    jQuery File Upload: https://blueimp.github.io/jQuery-File-Upload/ Fine Uploader: http://fineuploader ...

  5. UVALive 6262 Darts

    Description Consider a game in which darts are thrown at a board. The board is formed by 10 circles ...

  6. Codeforces Round #294 (Div. 2)C - A and B and Team Training 水题

    C. A and B and Team Training time limit per test 1 second memory limit per test 256 megabytes input ...

  7. Lucene——索引的创建、删除、修改

    package cn.tz.lucene; import java.io.File; import java.util.ArrayList; import java.util.List; import ...

  8. 通过内存盘提高MSMQ的消息吞吐能力

    转载:http://www.ikende.com/blog/00f2634be4704b79a3e22439edeb1343 由于MSMQ的消息交互都需要对磁盘进行读写操作,所以提高MSMQ的消息吞吐 ...

  9. [MySql]默认密码的查找与修改

    摘要 在安装成功后,怎么找到mysql的默认密码,折腾很长时间,最后发现在安装的过程中,产生了一个默认的随机密码. 密码 在mysql安装目录生成的data文件下,查找xxx.err的文件如图: 用记 ...

  10. MVC无限级分类01,分层架构,引入缓存,完成领域模型与视图模型的映射

    本系列将使用zTree来创建.编辑关于品牌.车系.车型的无限级分类,使用datagrid显示,源码在github.先上最终效果: datagrid显示所有记录.分页,提供添加.修改.删除按钮,并提供简 ...