PHP圖片驗證碼無法顯示的解決方案
阿新 • • 發佈:2018-12-08
問題:使用php實現圖片驗證碼,頁面不顯示
<form action="signin.php" method="post" class="col-xs-12 col-sm-4" id="post-form"> <h2>登入</h2> <div class="form-group"> <label for="username">使用者名稱</label> <input type="text" class="form-control" id="username" name="username"> </div> <div class="form-group"> <label for="password">密碼</label> <input type="password" class="form-control" id="password" name="password"> </div> <div class="form-group row"> <div class="col-xs-5"> <label class="sr-only">驗證碼:</label> <input type="text" class="form-control" id="authcode" name="authcode" placeholder="驗證碼"> </div> <div class="col-xs-7"> <img class="authcod_img" src="authcode.php"onclick="this.src='authcode.php?t='+Math.random()" name="authcode"> </div> </div> <button type="button" class="btn btn-default">提交</button> </form>
<?php
session_start();
header('Content-Type: image/png');
$img = imagecreatetruecolor(150, 40);
$bgcolor = imagecolorallocate($img, rand(0,100),rand(0,100),rand(0,100));
imagefill($img, 0,0,$bgcolor);
解決方案:
- windows環境下,檢查php是否安裝gd擴充套件,且為開啟狀態
php目錄下找到php.ini檔案,查詢如下語句
若語句前有分號,去掉分號
- 將檔案編碼方式改為utf-8無DOM格式
- 在header前清除快取
ob_clean();
header('Content-Type: image/png');
- 輸出前不能出現echo,print_r,var_dump等列印,註釋或刪除