ThInkPHP驗證碼不顯示,解決方案匯總

來源:互聯網
上載者:User

標籤:automatic   charset   字型   url   pre   class   closed   logs   color   

出現ThInkPHP驗證碼不顯示的情況

官方提示如下:
如果無法顯示驗證碼,請檢查:
① PHP是否已經安裝GD庫支援;
② 輸出之前是否有任何的輸出(尤其是UTF8的BOM頭資訊輸出);(開啟驗證碼檔案為亂碼,也有可能是BOM編碼,可查看下方2尋找解決方案)
③ Image類庫是否正確匯入;
④ 如果是中文驗證碼檢查是否有拷貝字型檔到類庫所在目錄;

⑤URL_MODEL模式,有些伺服器不支援REWRITE 。

 

 

針對上面的情況,一一檢查

1.可以用phpinfo 查看GD庫是否開啟,phpinfo列印出來的頁面能搜到如下資訊,說明安裝了GD庫

 

2.複製下面代碼,儲存為php格式,上傳到伺服器並運行,再重新整理驗證碼。ps:下面代碼作用是把所有檔案進行無BOM格式編碼

ps:把原始碼壓縮打包上傳到伺服器,再用伺服器解壓的情況,容易出現這種情況。ps:有些伺服器開啟檔案之後,會以BOM格式儲存檔案。

 

<?php  if (isset($_GET[‘dir‘])){ //設定檔案目錄  $basedir=$_GET[‘dir‘];  }else{  $basedir = ‘.‘;  }  $auto = 1;  checkdir($basedir);  function checkdir($basedir){  if ($dh = opendir($basedir)) {    while (($file = readdir($dh)) !== false) {     if ($file != ‘.‘ && $file != ‘..‘){      if (!is_dir($basedir."/".$file)) {       echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>";      }else{       $dirname = $basedir."/".$file;       checkdir($dirname);      }     }    }  closedir($dh);  }  }  function checkBOM ($filename) {  global $auto;  $contents = file_get_contents($filename);  $charset[1] = substr($contents, 0, 1);  $charset[2] = substr($contents, 1, 1);  $charset[3] = substr($contents, 2, 1);  if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {    if ($auto == 1) {     $rest = substr($contents, 3);     rewrite ($filename, $rest);     return ("<font color=red>BOM found, automatically removed.</font>");    } else {     return ("<font color=red>BOM found.</font>");    }  }  else return ("BOM Not Found.");  }  function rewrite ($filename, $data) {  $filenum = fopen($filename, "w");  flock($filenum, LOCK_EX);  fwrite($filenum, $data);  fclose($filenum);  }  ?>

 

ThInkPHP驗證碼不顯示,解決方案匯總

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.