<转>让SVN用户能够修改自身密码的PHP页面
1.修改Apache配置文件
因为我在安装和配置SVN的时候,对Apache的配置文件进行过优化,将所有关于SVN的配置都写在了/opt/apache2/conf/extra/httpd-svn.conf中,然后再通过主配置文件/opt/apache2/conf/httpd.conf中Include conf/extra/httpd-svn.conf方式来调用。
因此,我这里需要修改的就是/opt/apache2/conf/extra/httpd-svn.conf文件,加入以下内容(其中第1,2,6行请根据实际情况进行修改):
- Alias /svntools "/opt/apache2/htdocs/svntools"
- <Directory "/opt/apache2/htdocs/svntools">
- Require valid-user
- AuthType Basic
- AuthName "GridTeam`s subversion tools"
- AuthUserFile "/opt/subversion/conf/svn_passwdfile"
- </Directory>
2.创建修改自身密码的php页面
mkdir /opt/apache2/htdocs/svntools
cd /opt/apache2/htdocs/svntools
vim svnpass.php
输入以下内容(其中第135,136行请根据实际情况进行修改):
- <?
- $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方式提交到服务器的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 在线自助密码修改</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="/opt/subversion/conf/svn_passwdfile";
- $command='"/opt/apache2/bin/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>
修改权限
chown -R apache:apache /opt/apache2/htdocs/svntools
3.登陆页面
3.1 打开页面http://192.168.116.128/svntools/svnpass.php(具体IP请根据实际情况填写)
<转>让SVN用户能够修改自身密码的PHP页面的更多相关文章
- 转Centos7.0进入单用户模式修改root密码
Centos7.0进入单用户模式修改root密码 启动Centos7 ,按空格让其停留在如下界面. 按e进行编辑 在UTF-8后面输入init=/bin/sh 根据提示按ctrl+x 得如下图 输 ...
- 忘记root密码怎么办-单用户模式修改root密码
忘记root密码怎么办-单用户模式修改root密码================================= 1,开机3秒内按下向下的方向键,目的是为了不让它进入系统,而是停留在开机界面. 2 ...
- 单用户模式修改root密码
单用户模式修改root密码 1.进入引导菜单界面2.按e进入grub,在linux或linux16那行结尾加上 rw init=/bin/bash,按Ctrl+x或F103.进入bash-4.3# , ...
- 进入单用户模式修改root密码
进入单用户模式修改root密码 1.进入引导菜单界面2.按e进入grub,在linux或linux16那行结尾加上 rw init=/bin/bash,按Ctrl+x或F103.进入bash-4.3# ...
- ansible非root用户批量修改root密码
前言: 由于线上服务器密码长久没有更新,现领导要求批量更换密码.线上的之前部署过salt,但由于各种因素没有正常使用. 使用自动化工具批量修改的计划搁浅了,后来领导给了个python多线程修改密码脚本 ...
- centos 7 下进入单用户模式修改root密码
centos7进入单用户模式修改root用户密码 在工作中可能会遇到root密码忘记,那么这里就要进入单用户模式下了. 在重启电脑之后 时间:2015-05-13 10:42来源:blog.51cto ...
- centos单用户模式修改ROOT密码
首先启动的时候的时候,需要进入单用户模式(进入单用户模式的前提是系统引导器能正常工作),单用户模式是不需要输入密码,并且(进入单用户模式,没有开启网络服务,不支持远程连接 )网上说可以通过GRUB ( ...
- jenkins 新增用户和修改用户名密码
在某些条件下,jenkins是不允许注册用户的,这是,你可以采用如下的方式来新增用户,对于老的用户,忘记密码了,使用如下方式来重置密码. 1.系统管理-->管理用户 ----> 新建用户 ...
- CentOS 7 单用户模式修改root密码
1)在启动grub菜单,选择编辑选项启动 2)按键盘e键,来进入编辑界面 3)找到Linux 16的那一行,将ro改为rw init=/sysroot/bin/sh 4)现在按下Control+x,使 ...
随机推荐
- Android-现场保护
现场保护 当一个活动进入到了停止的状态,是有可能被系统回收的,我们都学过Activity的生命周期 当活动处于onPause() ,onStop() ,onDestroy() 三种状态时程序可能会被A ...
- break,continue,return 区别
using System;using System.Collections.Generic;using System.Text; namespace breakcontinue_test{ cl ...
- C++服务器设计(四):超时管理机制设计
前四章介绍了系统层的设计,从这一章开始进入服务层的设计. 连接断开 在常见的服务器场景中,客户端断开连接的方式为被动关闭.即作为客户端请求完服务器的服务后,选择主动关闭同服务器的连接.在服务器的角度看 ...
- _ConnectionPtr.CreateInstance(__uuidof(Connection))“不支持此接口”错误解决
最近在换了win7 64位的系统,今天突然发现以前写的ADO连接数据库的代码编译后在windows2003下会执行到: _ConnectionPtr.CreateInstance(__uuidof(C ...
- session问题和JSP
session问题和JSP 07. 五 / J2EE / 没有评论 一.Session开发中遇到的问题1.内存中的Session非常多,怎么办?2.用户在购物中.服务器停掉了该web应用(或者重新 ...
- 逛园子,看到个练习题,小试了一把(淘宝ued的两道小题)
闲来无事,逛园子,充充电.发现了一个挺有意思的博文,自己玩了一把. 第一题:使用 HTML+CSS 实现如图布局,border-widht 1px,一个格子大小是 60*60,hover时候边框变为橘 ...
- CI(CodeIgniter)学习第一讲
一.CI的优势一. (1).CI是一个PHP框架:大家都知道PHP框架有很多,CI只是其中之一,框架是为了重用发明的.同样,CI的目标是实现让你比从零开始编写代码更快速地开发项目.CI可以将需要完成的 ...
- php 程序员的历程
今天一朋友该找工作了. 问了我好多 我整理了下 希望有些帮助 以下内容纯属个人感觉如果有不恰当的地方请忽略.... 我做的是项目的包工 就是把销售拿下的项目整合后给我们实现功能. --------- ...
- position属性absolute与relative(转)
每次要用到Position属性时,总要去搜索下,这两个属性值的区别:今天就直接复制网上的结果,以便以后多看看. Absolute,CSS中的写法是:position:absolute; 他的意思是绝对 ...
- [转]从数据库中导出用友U8的现存量数据到Excel表
转载自:http://www.czerp.com.cn/page/Default.asp?ID=372 可通过Excel获取外部数据的方式与SQL数据库创建查询连接,并导入到Excel中: Selec ...