在phpMyAdmin使用用户口令登陆-PHP技术-3P代码网
繁体中文
设为首页
加入收藏
当前位置:PHP技术首页 >> PHP基础 >> 在phpMyAdmin使用用户口令登陆

在phpMyAdmin使用用户口令登陆

2005-01-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:使用过PHPMyAdmin的人知道,在PHPMyAdmin中,使用文件config.inc.PHP保存用户名和密码,当需要更换用户或用户口令更改时,必须修改config.inc.PHP文件,然后再上传,特别的不方便。更有时,为了修改MYSQL库或表而...

使用过PHPMyAdmin的人知道,在PHPMyAdmin中,使用文件config.inc.PHP保存用户名和密码,当需要更换用户或用户口令更改时,必须修改config.inc.PHP文件,然后再上传,特别的不方便。更有时,为了修改MYSQL库或表而使用root账号,如果这时其它网站的自动搜擎系统搜索到index.PHP并继续执行其中的每一步的话,是相当危险的。为此需要用户登陆机制,在每次使用时,输入用户名和口令,这样会安全得多。

以下是我在管理过程中,根据实际需要,对PHPMyAdmin做的一些更改,为了尽量不影响原来PHPMyAdmin的结构,我在PHPMyAdmin的基础上增加了一个文件index0.PHP,仅仅修改了一个文件config.inc.PHP,对PHPMyAdmin没有一点影响,既可以使用原来的PHPMyAdmin,也可以使用新的用户口令登陆机制。

以下为两个文件列表,将这两个文件拷贝到PHPMyAdmin目录,执行index0.PHP即可,该程序在Apache + PHP + MYSQL 和 IIS5 + PHP + MYSQl 和 PWS + PHP + MYSQL下正常执行。

PHPMyAdmin 下载:

A set of PHP3-scripts to adminstrate MySQL over the WWW.

Version 2.1.0 - 08/06/2000

http://www.PHPwizard.net/projects/PHPMyAdmin/

index0.PHP文件:

MySQL 维护

//编码,防止在地址栏上显示

function b2h($string) {

return(bin2hex(strrev($string)));

}

//反编码,防止在地址栏上显示

function h2b($string) {

$stringtmp="";

for($i=0;$i

$stringtmp .= pack("C",hexdec(substr($string,$i,2)));

}

return(strrev($stringtmp));

}

global $PHP_SELF;

if (1==0) {

echo "-->PHP运行不正常,请检查} else {

echo "--".">";

}

?>

欢迎使用本工具用于维护MySQL数据库

?step=2">下一步 ->

}

if ($step==2) {

$userfiletmp="/tmp/~userfile/~tmp.inc";

if (file_exists($userfiletmp)) {

include $userfiletmp;

//$dbservertype,$servername,$dbusername,$dbpassword,$dbname;

$dbservertype=h2b($dbservertype);

$servername=h2b($servername);

$dbusername=h2b($dbusername);

$dbname=h2b($dbname);

$curtime=h2b($curtime);

if (time()-$curtime<120){

$dbpassword=h2b($dbpassword);

}else{

$dbpassword="";

}

}else{

$dbservertype="mysql";

$servername="localhost";

$dbusername="";

$dbpassword="";

$dbname="";

}

$dbservertype=($dbservertype==""?"mysql":$dbservertype);

$servername=($servername==""?"localhost":$servername);

?>

填入连接信息

主机类型:

主机地址:

用户名称:

密码:

数据库名:

}

if ($step==3) {

$dbservertype=trim($dbservertype);

$servername=trim($servername);

$dbusername=trim($dbusername);

$dbpassword=trim($dbpassword);

$dbname=trim($dbname);

echo "

确认是否正确:n";

echo "

Database server type: $dbservertypen";

echo "

Database server hostname / IP address: $servernamen";

echo "

Database username: $dbusernamen";

echo "

Database password: ******n";

echo "

Database name: $dbnamen";

echo "

以上参数正确才能继续";

$dbservertype=b2h($dbservertype);

$servername=b2h($servername);

$dbusername=b2h($dbusername);

$dbpassword=b2h($dbpassword);

$dbname=b2h($dbname);

$userfiletmp="/tmp/~userfile/~tmp.inc";

if (!file_exists(dirname($userfiletmp))) {

mkdir(dirname($userfiletmp), 0700);

}

$handertmp=fopen($userfiletmp,"w");

fputs($handertmp,"n");

fclose($handertmp);

//echo "

下一步 ->";

echo "

下一步 ->";

}

if ($step==4) {

}

if ($step==44) {

$step=0;

$userfiletmp="/tmp/~userfile/~tmp.inc";

if (file_exists($userfiletmp)) {

include $userfiletmp;

//重新保存文件,去掉密码

$dbpassword="";

$handertmp=fopen($userfiletmp,"w");

fputs($handertmp,"n");

fclose($handertmp);

echo "成功注销,请重新登陆";

}

}

?>

1) {

echo "刷新";

echo " 上一步";

}

?>

echo "";

echo "

-->

config.inc.PHP 文件

/* $Id: config.inc.PHP,v 1.28 2000/07/13 13:52:48 tobias Exp $ */

//编码,防止在地址栏上显示

function b2h($string) {

return(bin2hex(strrev($string)));

}

//反编码,防止在地址栏上显示

function h2b($string) {

$stringtmp="";

for($i=0;$i

$stringtmp .= pack("C",hexdec(substr($string,$i,2)));

}

return(strrev($stringtmp));

}

/*

* PHPMyAdmin Configuration File

* All directives are explained in Documentation.HTML

*/

// The $cfgServers array starts with $cfgServers[1]. Do not use $cfgServers[0].

// You can disable a server config entry by setting host to ''.

$cfgServers[1]['host'] = 'localhost'; // MySQL hostname

$cfgServers[1]['port'] = ''; // MySQL port - leave blank for default port

$cfgServers[1]['adv_auth'] = false; // Use advanced authentication?

$cfgServers[1]['stduser'] = 'root'; // MySQL standard user (only needed with advanced auth)

$cfgServers[1]['stdpass'] = ''; // MySQL standard password (only needed with advanced auth)

$cfgServers[1]['user'] = 'root'; // MySQL user (only needed with basic auth)

$cfgServers[1]['password'] = ''; // MySQL password (only needed with basic auth)

$cfgServers[1]['only_db'] = ''; // If set to a db-name, only this db is accessible

$cfgServers[1]['verbose'] = ''; // Verbose name for this host - leave blank to show the hostname

$userfiletmp="/tmp/~userfile/~tmp.inc";

if (file_exists($userfiletmp)) {

include $userfiletmp;

//$servername,$dbusername,$dbpassword,$dbname;

$dbservertype=h2b($dbservertype);

if ($dbservertype=="mysql"){

$servername=h2b($servername);

$dbusername=h2b($dbusername);

$dbpassword=h2b($dbpassword);

$dbname=h2b($dbname);

$curtime=h2b($curtime);

if (time()-$curtime<600){

$cfgServers[1]['host'] = $servername; // MySQL hostname

$cfgServers[1]['user'] = $dbusername; // MySQL user (only needed with basic auth)

$cfgServers[1]['password'] = $dbpassword; // MySQL password (only needed with basic auth)

$cfgServers[1]['only_db'] = $dbname; // If set to a db-name, only this db is accessible

//重新保存文件,以便更新时间

$dbservertype=b2h($dbservertype);

$servername=b2h($servername);

$dbusername=b2h($dbusername);

$dbpassword=b2h($dbpassword);

$dbname=b2h($dbname);

$handertmp=fopen($userfiletmp,"w");

fputs($handertmp,"n");

fclose($handertmp);

}else{

echo "账号参数已经过期,请重新输入!";

echo "登陆";

die("程序终止");

}

}

}

$cfgServers[2]['host'] = '';

$cfgServers[2]['port'] = '';

$cfgServers[2]['adv_auth'] = false;

$cfgServers[2]['stduser'] = '';

$cfgServers[2]['stdpass'] = '';

$cfgServers[2]['user'] = '';

$cfgServers[2]['password'] = '';

$cfgServers[2]['only_db'] = '';

$cfgServers[2]['verbose'] = '';

$cfgServers[3]['host'] = '';

$cfgServers[3]['port'] = '';

$cfgServers[3]['adv_auth'] = false;

$cfgServers[3]['stduser'] = '';

$cfgServers[3]['stdpass'] = '';

$cfgServers[3]['user'] = 'root';

$cfgServers[3]['password'] = '';

$cfgServers[3]['only_db'] = '';

$cfgServers[3]['verbose'] = '';

// If you have more than one server configured, you can set $cfgServerDefault

// to any one of them to autoconnect to that server when PHPMyAdmin is started,

// or set it to 0 to be given a list of servers without logging in

// If you have only one server configured, $cfgServerDefault *MUST* be

// set to that server.

$cfgServerDefault = 1; // Default server (0 = no default server)

$cfgServer = '';

unset($cfgServers[0]);

$cfgManualBase = "http://www.mysql.com/documentation/mysql/bychapter/";

$cfgConfirm = true;

$cfgPersistentConnections = false;

$cfgBorder = "0";

$cfgThBgcolor = "#D3DCE3";

$cfgBgcolorOne = "#CCCCCC";

$cfgBgcolorTwo = "#DDDDDD";

$cfgMaxRows = 30;

$cfgMaxInputsize = "300px";

$cfgOrder = "ASC";

$cfgShowBlob = true;

$cfgShowSQL = true;

require("chinese_gb.inc.PHP");

$strWelcome="注销账户 重新登陆$strWelcome";

$cfgColumnTypes = array(

"TINYINT",

"SMALLINT",

"MEDIUMINT",

"INT",

"BIGINT",

"FLOAT",

"DOUBLE",

"DECIMAL",

"DATE",

"DATETIME",

"TIMESTAMP",

"TIME",

"YEAR",

"CHAR",

"VARCHAR",

"TINYBLOB",

"TINYTEXT",

"TEXT",

"BLOB",

"MEDIUMBLOB",

"MEDIUMTEXT",

"LONGBLOB",

"LONGTEXT",

"ENUM",

"SET");

$cfgFunctions = array(

"ASCII",

"CHAR",

"SOUNDEX",

"CURDATE",

"CURTIME",

"FROM_DAYS",

"FROM_UNIXTIME",

"NOW",

"PASSword",

"PERIOD_ADD",

"PERIOD_DIFF",

"TO_DAYS",

"USER",

"WEEKDAY",

"RAND");

$cfgAttributeTypes = array(

"",

"BINARY",

"UNSIGNED",

"UNSIGNED ZEROFILL");

// Setting magic_quotes_runtime - do not change!

set_magic_quotes_runtime(0);

?>

如有引用,请注明高山雪和alpsnow@china.com

责任编辑:admin
相关文章