国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > PhpCMS > 正文

PHPCMS V9 9.3.2安裝過程中的BUG之無法連接數據庫服務器

2024-09-10 07:15:41
字體:
來源:轉載
供稿:網友

有時候我們在安裝PHPCMS的時候會遇到一個問題,明明我們填寫的數據庫信息都是正確的,可就是會提示“無法連接數據庫服務器,請檢查配置!”,但我們通過PHPMYADMIN可以正常登錄,這是為什么呢?

原來我也很是不解,可為了能夠盡快的安裝完,我也沒有心思去過多的研究,就在測試服務器上先安裝上,然扣再打包上傳至服務器再導入數據庫,挺麻煩的,今天終于找到了 原因.

PHPCMS V9 安裝的第5步是賬號設置,當我們填寫完賬號信息后提交,這時候安裝程序會以通過一個異步調用去檢查配置是否正確,如果你的數據庫密碼是:數字+字母,很好沒有問題可以通過測試,然后繼續下一步安裝.

但是,問題就出現在這里,如果你的密碼里含有 # 、& 等這些在URL中使用的字符,不好意思這里就出錯了,怎么搞就是安裝不上,因為他們在進行測試的時候使用的是這樣的方法:

  1. <!--   
  2. var errmsg = new Array();   
  3. errmsg[0] = '您已經安裝過Phpcms,系統會自動刪除老數據!是否繼續?';   
  4. errmsg[2] = '無法連接數據庫服務器,請檢查配置!';   
  5. errmsg[3] = '成功連接數據庫,但是指定的數據庫不存在并且無法自動創建,請先通過其他方式建立數據庫!';   
  6. errmsg[6] = '數據庫版本低于Mysql 4.0,無法安裝Phpcms,請升級數據庫版本!';   
  7.    
  8. function checkdb()    
  9. {   
  10.     var url = '?step=dbtest&dbhost='+$('#dbhost').val()+'&dbuser='+$('#dbuser').val()+'&dbpw='+$('#dbpw').val()+'&dbname='+$('#dbname').val()+'&tablepre='+$('#tablepre').val()+'&sid='+Math.random()*5;   
  11.     $.get(url, function(data){   
  12.         if(data > 1) {   
  13.             alert(errmsg[data]);   
  14.             return false;   
  15.         }   
  16.         else if(data == 1 || (data == 0 && confirm(errmsg[0]))) {   
  17.             $('#install').submit();   
  18.         }   
  19.     });   
  20.     return false;   
  21. }   
  22. //-->   
  23.  
  24. $.get(url ..... 

問題就出現在這里,我們如果密碼中含有#或&會就被$_GET參數錯誤的分隔導致我們的密碼和我們輸入的時候不一致而導致問題的出現,怎么辦的,把這一段代碼換成下面的代碼:

  1. <!--   
  2. var errmsg = new Array();   
  3. errmsg[0] = '您已經安裝過Phpcms,系統會自動刪除老數據!是否繼續?';   
  4. errmsg[2] = '無法連接數據庫服務器,請檢查配置!';   
  5. errmsg[3] = '成功連接數據庫,但是指定的數據庫不存在并且無法自動創建,請先通過其他方式建立數據庫!';   
  6. errmsg[6] = '數據庫版本低于Mysql 4.0,無法安裝Phpcms,請升級數據庫版本!';   
  7.    
  8. function checkdb()    
  9. {   
  10.     $.ajax(   
  11.         {   
  12.             type:"POST",   
  13.             url: 'install.php',   
  14.             data: "step=dbtest&dbhost="+$("#dbhost").val()+"&dbuser="+$('#dbuser').val()+"&dbpw="+$("#dbpw").val()+"&dbname="+$("#dbname").val()+"&tablepre="+$("#tablepre").val()+"&sid="+Math.random()*5,   
  15.              success: function(data){   
  16.                     if(data > 1) {   
  17.                         alert(errmsg[data]);   
  18.                         return false;   
  19.                     }   
  20.                     else if(data == 1 || (data == 0 && confirm(errmsg[0]))) {   
  21.                         $('#install').submit();   
  22.                     }    
  23.             }   
  24.         }   
  25.     );   
  26.        
  27.     return false;   
  28. }   
  29. //--> 

改為POST方法,就不會有以上的問題出現.

同樣將install.php中347行改為extract($_POST) 代碼如下:

  1. //數據庫測試   
  2. case 'dbtest':   
  3.     extract($_POST); //要改的就是這里 line 347   
  4.     if(!@mysql_connect($dbhost$dbuser$dbpw)) {   
  5.         exit('2');   //Vevb.com 
  6.     } 

這樣就可以了,或者你直接把密碼改簡單了,回頭再去database.php 中修改也一樣.

寫程序的時候不要這么偷懶了,唉,本來想去官方論壇上寫BUG提交,一來是太麻煩,二來是我提交過的BUG從來沒有被管理員回復過,還不如寫到自己的博客中呢.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彝良县| 西林县| 化州市| 新丰县| 黄浦区| 安乡县| 突泉县| 博乐市| 高邮市| 乐业县| 宣威市| 涞水县| 永仁县| 永昌县| 昌都县| 巴中市| 宁南县| 克拉玛依市| 晋州市| 卢龙县| 鲁甸县| 阳泉市| 贵阳市| 乐都县| 南阳市| 城固县| 乌兰察布市| 博兴县| 措美县| 甘孜县| 彭山县| 桑植县| 淮北市| 黄山市| 庄河市| 临澧县| 三都| 鹤岗市| 遂川县| 武隆县| 当阳市|