svn自助改动password(PHP脚本实现)
#创建脚本文件夹
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
#创建改动password的php脚本
<?
$username = $_SERVER["PHP_AUTH_USER"]; //经过 AuthType Basic 认证的用户名
$authed_pass = $_SERVER["PHP_AUTH_PW"]; //经过 AuthType Basic 认证的password
$input_oldpass = (isset($_REQUEST["oldpass"]) ? $_REQUEST["oldpass"] : ""); //从界面上输入的原password
$newpass = (isset($_REQUEST["newpass"]) ? $_REQUEST["newpass"] : ""); //界面上输入的新password
$repeatpass = (isset($_REQUEST["repeatpass"]) ? $_REQUEST["repeatpass"] : ""); //界面上输入的反复password
$action = (isset($_REQUEST["action"]) ? $_REQUEST["action"] : ""); //以hide方式提交到server的action
if($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 在线自助password改动</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("请输入password! ");
return false;
}
if(repeatpass==""){
alert("请反复输入password! ");
return false;
}
if(newpass!=repeatpass){
alert("两次输入password不一致,请又一次输入!");
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 password改动</th>
</tr>
<tr>
<td>用户名:</td>
<td align="left"> <? =$username? ></td>
</tr>
<tr>
<td>原password:</td>
<td><input type=password size=12 name=oldpass></td>
</tr>
<tr>
<td>用户password:</td>
<td><input type=password size=12 name=newpass></td>
</tr>
<tr>
<td>确认password:</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="原password错误!";
}
else if($action == "passempty"){
$msg="请输入新password。";
}
else if($action == "passnotsame"){
$msg="两次输入password不一致。请又一次输入。";
}
else{
$passwdfile="/var/www/svn/project/conf/passwd";
$command='"htpasswd" -b '.$passwdfile." ".$username." ".$newpass;
system($command, $result);
if($result==0){
$msg="用户[".$username."]password改动成功。请用新password登陆.";
}
else{
$msg="用户[".$username."]password改动失败。返回值为".$result.",请和管理员联系! ";
}
}
if (isset($msg)){
? >
<script language="javaScript">
<!--
alert("<?=$msg?>");
window.location.href="<?=$_SERVER["PHP_SELF"]?>"
//-->
</script>
<?
}
?>
</body>
</html>
svn自助改动password(PHP脚本实现)的更多相关文章
- python+paramiko库+svn写的自动化部署脚本
第一篇博文 直接开门见山的说了. 这是件什么事?:每次部署都是复制本地的文件粘贴到服务器端,因为路径复杂,所以费时且手工容易出漏洞. 一直在想有什么办法可以解决这种,因为以前在微软的一个牛人同事做过一 ...
- linux上MySQL改动password的各种方法,yc整理
MySQL改动password的各种方法 整理了下面四种在MySQL中改动rootpassword的方法,可能对大家有所帮助! 方法1: 用SET PASSWORD命令 mysql -uroot my ...
- MySQL加入服务、设置password、改动password
修正:加入MySQL服务时,能够不带版本.也就说以下的全部MySQL57能够直接写成MySQL!希望大家注意. MySQL安装好之后,往往还须要再做一些设置! 1.加入MySQL服务: 输入命令cmd ...
- SVN与TFS自动同步脚本(很实用)
一直都在园子里看文章,因为各种原因懒得写文章.最近稍得空闲,把这几天的工作成果分享一下. 因为工作需要,开发人员使用Qt进行系统移动端的开发,Qt的版本控制却不提供连接TFS的设置,只有使用svn.没 ...
- svn代码发版的脚本分享
背景:开发将其代码放到svn里面,如何将修改后存放到svn里的代码发布到线上?简单做法:写个shell脚本,用于代码发版.比如开发的代码存放svn的路径是:svn://112.168.19.120/h ...
- svn备份与还原_脚本_(dump命令)
今天备份svn, 能保证好用就行先, 回头再研究 buerguo.bat @echo off :: 关闭回显 :: 说明:如有命令不明白,请使用帮助命令:命令/? .如:for/? :: 设置标题 t ...
- 取消SVN版本号控制的bash脚本
原理非常easy,递归删除当前文件夹下全部的 .svn 文件. 把 .svn 换成 .git 就可以用于删除 git 控制
- VisualSVN Server 改动用户password
VisualSVN Server是很方便好用的SVNserver端软件.但有个问题,你在server端创建了usernamepassword后,用户无法自己改动password.据说VisualSVN ...
- MySQL 改动用户password及重置rootpassword
为数据库用户改动password是DBA比較常见的工作之中的一个.对于MySQL用户账户的password改动,有几种不同的方式.推荐的方式使用加密函数来改动password. 本文主要描写叙述了通过 ...
随机推荐
- poj 3164
朱刘算法 步骤: 1.计算出每个点边权最小的边的权(如果除根以外有其他的点没有入边,则不存在最小树形图),并记下边的另一个端点(称其为这个点的前趋) 2.沿着每个点向上走,如果在走到根或环上的点之前, ...
- angularJS简介及其特点—— 五大特性,加快 Web 应用开发
AngularJS 是谷歌的一个 JavaScript 框架,旨在简化前端应用程序的开发. 一. 关于和jquery的比较 首先angular是一个mvc框架,它与jquery不同之处在于,前者致力于 ...
- ZOJ 3631 Watashi's BG DFS
J - Watashi's BG Time Limit:3000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Subm ...
- UVALive 4863 Balloons 贪心/费用流
There will be several test cases in the input. Each test case will begin with a line with three inte ...
- Tasker to detect application running in background
We used to be told that tasker is only capable of detecting foreground application, if the app gets ...
- Xilinx Platform Usb Cable
Key Features High-performance FPGA configuration and PROM/CPLD programming Includes innovative FPGA- ...
- JAVA设计模式之门面模式(外观模式)
医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统.如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号.门诊. ...
- 用最简单的例子理解单例模式(Singleton Pattern)
当从应用程序全局的角度来看,如果只允许类的一个实例产生,就可以考虑单例模式. □ 即时加载的单例模式 把类的实例赋值给类的一个静态字段. class Program { static void Mai ...
- Python 必备神器
1. pip 用来包管理 文档:https://pip.pypa.io/en/latest/installing.html # 安装,可指定版本号(sudo) pip install Django== ...
- Tomcat报BAD packet signature 18245错误的原因
今天在启动服务器时,报了一个BAD packet signature 18245错误 详细错误如下: 2009-6-5 11:09:11 org.apache.jk.common.MsgAjp pro ...