PHPCMS V9 9.3.2安装过程中的BUG之无法连接数据库服务器
2013-08-26 18:42
330 查看
有时候我们在安装PHPCMS的时候会遇到一个问题,明明我们填写的数据库信息都是正确的,可就是会提示“无法连接数据库服务器,请检查配置!”,但我们通过PHPMYADMIN可以正常登录,这是为什么呢?
原来我也很是不解,可为了能够尽快的安装完,我也没有心思去过多的研究,就在测试服务器上先安装上,然扣再打包上传至服务器再导入数据库。挺麻烦的。今天终于找到了 原因。
PHPCMS V9 安装的第5步是账号设置,当我们填写完账号信息后提交,这时候安装程序会以通过一个异步调用去检查配置是否正确,如果你的数据库密码是:数字+字母,很好没有问题可以通过测试,然后继续下一步安装。
但是,问题就出现在这里,如果你的密码里含有 # 、& 等这些在URL中使用的字符,不好意思这里就出错了。怎么搞就是安装不上!!因为他们在进行测试的时候使用的是这样的方法 :
<!--
var errmsg = new Array();
errmsg[0] = '您已经安装过Phpcms,系统会自动删除老数据!是否继续?';
errmsg[2] = '无法连接数据库服务器,请检查配置!';
errmsg[3] = '成功连接数据库,但是指定的数据库不存在并且无法自动创建,请先通过其他方式建立数据库!';
errmsg[6] = '数据库版本低于Mysql 4.0,无法安装Phpcms,请升级数据库版本!';
function checkdb()
{
var url = '?step=dbtest&dbhost='+$('#dbhost').val()+'&dbuser='+$('#dbuser').val()+'&dbpw='+$('#dbpw').val()+'&dbname='+$('#dbname').val()+'&tablepre='+$('#tablepre').val()+'&sid='+Math.random()*5;
$.get(url, function(data){
if(data > 1) {
alert(errmsg[data]);
return false;
}
else if(data == 1 || (data == 0 && confirm(errmsg[0]))) {
$('#install').submit();
}
});
return false;
}
//-->
$.get(url .....
问题就出现在这里,我们如果密码中含有#或&会就被$_GET参数错误的分隔导致我们的密码和我们输入的时候不一致而导致问题的出现!!怎么办的,把这一段代码换成下面的代码:
<!--
var errmsg = new Array();
errmsg[0] = '您已经安装过Phpcms,系统会自动删除老数据!是否继续?';
errmsg[2] = '无法连接数据库服务器,请检查配置!';
errmsg[3] = '成功连接数据库,但是指定的数据库不存在并且无法自动创建,请先通过其他方式建立数据库!';
errmsg[6] = '数据库版本低于Mysql 4.0,无法安装Phpcms,请升级数据库版本!';
function checkdb()
{
$.ajax(
{
type:"POST",
url: 'install.php',
data: "step=dbtest&dbhost="+$("#dbhost").val()+"&dbuser="+$('#dbuser').val()+"&dbpw="+$("#dbpw").val()+"&dbname="+$("#dbname").val()+"&tablepre="+$("#tablepre").val()+"&sid="+Math.random()*5,
success: function(data){
if(data > 1) {
alert(errmsg[data]);
return false;
}
else if(data == 1 || (data == 0 && confirm(errmsg[0]))) {
$('#install').submit();
}
}
}
);
return false;
}
//-->
改为POST方法,就不会有以上的问题出现。
同样将install.php中347行改为extract($_POST) 代码如下:
//数据库测试
case 'dbtest':
extract($_POST); //要改的就是这里 line 347
if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
exit('2');
}
这样就可以了!!
或者你直接把密码改简单了,回头再去database.php 中修改也一样。
-------------------------
写程序的时候不要这么偷懒了!!唉,本来想去官方论坛上写BUG提交,一来是太麻烦,二来是我提交过的BUG从来没有被管理员回复过!!还不如写到自己的博客中呢。
原来我也很是不解,可为了能够尽快的安装完,我也没有心思去过多的研究,就在测试服务器上先安装上,然扣再打包上传至服务器再导入数据库。挺麻烦的。今天终于找到了 原因。
PHPCMS V9 安装的第5步是账号设置,当我们填写完账号信息后提交,这时候安装程序会以通过一个异步调用去检查配置是否正确,如果你的数据库密码是:数字+字母,很好没有问题可以通过测试,然后继续下一步安装。
但是,问题就出现在这里,如果你的密码里含有 # 、& 等这些在URL中使用的字符,不好意思这里就出错了。怎么搞就是安装不上!!因为他们在进行测试的时候使用的是这样的方法 :
<!--
var errmsg = new Array();
errmsg[0] = '您已经安装过Phpcms,系统会自动删除老数据!是否继续?';
errmsg[2] = '无法连接数据库服务器,请检查配置!';
errmsg[3] = '成功连接数据库,但是指定的数据库不存在并且无法自动创建,请先通过其他方式建立数据库!';
errmsg[6] = '数据库版本低于Mysql 4.0,无法安装Phpcms,请升级数据库版本!';
function checkdb()
{
var url = '?step=dbtest&dbhost='+$('#dbhost').val()+'&dbuser='+$('#dbuser').val()+'&dbpw='+$('#dbpw').val()+'&dbname='+$('#dbname').val()+'&tablepre='+$('#tablepre').val()+'&sid='+Math.random()*5;
$.get(url, function(data){
if(data > 1) {
alert(errmsg[data]);
return false;
}
else if(data == 1 || (data == 0 && confirm(errmsg[0]))) {
$('#install').submit();
}
});
return false;
}
//-->
$.get(url .....
问题就出现在这里,我们如果密码中含有#或&会就被$_GET参数错误的分隔导致我们的密码和我们输入的时候不一致而导致问题的出现!!怎么办的,把这一段代码换成下面的代码:
<!--
var errmsg = new Array();
errmsg[0] = '您已经安装过Phpcms,系统会自动删除老数据!是否继续?';
errmsg[2] = '无法连接数据库服务器,请检查配置!';
errmsg[3] = '成功连接数据库,但是指定的数据库不存在并且无法自动创建,请先通过其他方式建立数据库!';
errmsg[6] = '数据库版本低于Mysql 4.0,无法安装Phpcms,请升级数据库版本!';
function checkdb()
{
$.ajax(
{
type:"POST",
url: 'install.php',
data: "step=dbtest&dbhost="+$("#dbhost").val()+"&dbuser="+$('#dbuser').val()+"&dbpw="+$("#dbpw").val()+"&dbname="+$("#dbname").val()+"&tablepre="+$("#tablepre").val()+"&sid="+Math.random()*5,
success: function(data){
if(data > 1) {
alert(errmsg[data]);
return false;
}
else if(data == 1 || (data == 0 && confirm(errmsg[0]))) {
$('#install').submit();
}
}
}
);
return false;
}
//-->
改为POST方法,就不会有以上的问题出现。
同样将install.php中347行改为extract($_POST) 代码如下:
//数据库测试
case 'dbtest':
extract($_POST); //要改的就是这里 line 347
if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
exit('2');
}
这样就可以了!!
或者你直接把密码改简单了,回头再去database.php 中修改也一样。
-------------------------
写程序的时候不要这么偷懒了!!唉,本来想去官方论坛上写BUG提交,一来是太麻烦,二来是我提交过的BUG从来没有被管理员回复过!!还不如写到自己的博客中呢。
相关文章推荐
- 安装卡巴斯基7后,asp.net服务器无法连接数据库原因
- 安装网站时出现“连接数据库出现数据库服务器或登录密码无效,无法连接数据库,请重新设定”解决方法
- piwigo简体中文2.4.6安装时出现“服务器连接正常,但是无法连接到数据库”解决方法
- phpcms v9无法连接数据库服务器,请检查配置
- phpcms v9无法连接数据库服务器,请检查配置
- phpcms v9无法连接数据库服务器,请检查配置
- 解决:[不安装oracle客户端,也要连接oracle服务器]这个问题过程中的经验。
- #1045无法登录phpmyadmin,连接不上mysql服务器,先把ubuntu安装lamp教程贴上吧
- SQL Server2008安装问题 MOF编译器无法连接到wmi服务器
- 【数据库】LNMP一键包安装后解决MySQL无法远程连接问题
- SQL2008无法连接到.\SQLEXPRESS,用户'sa'登录失败(错误18456)图文解决方法 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, er
- 解决方法总结:服务器不支持 MySql 数据库,无法安装论坛程序
- SQL 存储过程连接远程服务器数据库的方法
- oralce服务器关机重启后报内存错误,并无法连接数据库ora-12154
- sqlserver2005重新安装(安装汇编错误,安装程序无法连接到数据库服务进行服务配置)
- Win7 64位安装VS2013无法连接远程数据库
- 无法连接到本地数据库服务器
- Linux下通过yum来安装 mysql 5.1,以及以前的旧版本(因服务器网络问题,安装后无法连接,无法验证正确性)
- 无法 连接到SQLEXPRESS 已成功与服务器建立连接,但是在登录过程中发生错误。管道的另一端无任何进程
- 记录一下Centos7安装过程中的网络连不上的问题 Centos7 桥接 无法连接网络