教你如何修改php探针里面显示的服务器管理员邮箱

echo $_SERVER['SERVER_ADMIN'];  //管理员邮箱

这个信息虽然无关痛痒,但就是看着不爽,所以决定改了它,网上搜了一下,貌似这个问题在全球主机论坛有人提过,可惜没人提供解决方法,自己摸索了一下,总结如下:

首先看一下手册里面针对这个变量的介绍,
该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。

那么思路就出来了,先找下apache的配置文件httpd.conf里面的这个参数,如果不是,继续看单个虚拟主机配置里面的这个参数,逐个改过来就可以了。

顺便提供个vim批量替换小技巧:

:% s/root@localhost/admin@gump.me/g

说明:前面的百分号+空格代表全局替换,如果不要则只会替换当前行,s后面的root@localhost代表需要替换的内容,admin@gump.me代表替换后的内容。

发表在 服务器配置 | 标签为 | 留下评论

通过.htaccess禁止部分目录下的php文件执行权限

示例:

?View Code HTACCESS
RewriteEngine on
RewriteCond % !^$
RewriteRule uploads/(.*).(php)$ – [F]
RewriteRule data/(.*).(php)$ – [F]
RewriteRule templets/(.*).(php)$ –[F]

此示例可用于目前较流行的dedecms站点。

发表在 服务器配置 | 标签为 | 留下评论

dede根据任意栏目id获取顶级栏目名称的自定义函数

//获取顶级栏目名
function GetTopTypenameById($id)
{
	global $dsql;
	$row = $dsql->GetOne("SELECT typename,topid FROM dede_arctype WHERE id= $id");
    if ($row['topid'] == '0')
	{
		return $row['typename'];
	} else {
		$row1 = $dsql->GetOne("SELECT typename FROM dede_arctype WHERE id= $row[topid]");
		return $row1['typename'];
    }
}
发表在 Web程序开发 | 留下评论

xampp中apache无法启动,提示terminating worker thread 0的解决办法

系统缺少Microsoft Visual C++ 2008 Runtime这个组件,安装Microsoft Visual C++ 2008 Redistributable Package即可解决。
下载地址:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf

发表在 服务器配置 | 标签为 | 留下评论

DEDECMS忘记管理员密码的解决方案

办法一:破解密码。
DEDECMS帐号的加密方式是取密文的32位md5值然后去掉前5位及后7位得出中间的20位,这样的话我们想还原出它完整的32位md5值是不可能的,但如果再去掉前3位及后1位则可以得出其相应的16位md5值了,拿这个16位md5值到各大md5解密网站去碰撞一下是很有可能还原出明文密码的了。

办法二:重置密码。

<?php
/**
 * @author Gump
 * 作用:重置织梦后台管理员密码
 * Copyright: http://gump.me/1041.html
 */
header('Content-type: text/html;charset=gb2312');
require_once (dirname(__FILE__) . "/include/common.inc.php");
if($dopost == "mod"){
    if(!strlen($name)){
        echo "<font color='red'>管理账号不能为空</font>";
		exit();
    }
    else if(!strlen($pwd) || !strlen($cpwd)){
        echo "<font color='red'>密码不能为空</font>";
		exit();
    }
    else if($pwd != $cpwd){
        echo "<font color='red'>两次密码不一致,请重新输入密码</font>";
		exit();
    }else{
        $query = " Select id from `#@__admin` Where userid = '{$name}' ";
        $idArr = $dsql->GetOne($query);
        if(strlen($idArr['id'])){
            if($pwd!=''){
		        $pwdm = " pwd='".md5($pwd)."' ";
		        $pwd = " pwd='".substr(md5($pwd),5,20)."' ";
	        }
            $query = " Update `#@__admin` set $pwd where userid='{$name}' ";
            $dsql->ExecuteNoneQuery($query);
            $query = " Update `#@__member` set $pwdm where userid='{$name}' ";
            $dsql->ExecuteNoneQuery($query);
            echo "<font color='green'>密码重置成功</font>";
            exit();
        }else{
            echo "<font color='red'>管理账号不存在,请选择正确的管理账号</font>";
			exit();
        }
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>管理员密码重置</title>
</head>
 
<body>
<form action="" method="post">
<input type="hidden" value="mod" name="dopost">
<table width="550" border="0" align="center">
  <tr>
    <td width="81">管理账号:</td>
    <td width="453">
    <select name="name">
              <?php
				$dsql->SetQuery("Select * From `#@__admin` where usertype='10'");
				$dsql->Execute("ut");
			  	while($myrow = $dsql->GetObject("ut"))
			  	{
			  		echo "<option value='".$myrow->userid."'>".$myrow->userid."</option>\r\n";
			  	}
			  	?>
    </select>
    </td>
  </tr>
  <tr>
    <td width="81">新密码:</td>
    <td width="453"><input type="text" name="pwd" size="40"></td>
  </tr>
  <tr>
    <td>确认密码:</td>
    <td><input type="text" name="cpwd" size="40"></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input type="submit" value="确    认"></td>
    </tr>
</table>
</form>
</body>
</html>

重置密码文件下载:resetpass

发表在 Web程序开发 | 标签为 , | 留下评论