ホームページ  >  記事  >  バックエンド開発  >  PHP検証コードパターンが表示できない

PHP検証コードパターンが表示できない

WBOY
WBOYオリジナル
2016-06-13 12:34:15885ブラウズ

PHP 検証コード パターンが表示されません
以下の captcha.php ファイルを実行すると、500 エラーが報告され、検証コード パターンが表示されません
「$_SESSION['pass_phrase'] = SHA($pass_phrase);」という文をコメントアウトすると、エラーは報告されず、パターンが表示されます。その理由は何ですか?
セッションに保存する必要がある情報を変更するにはどうすればよいですか?

session_start();

//いくつかの重要な CAPTCHA 定数を設定します
define('CAPTCHA_NUMCHARS', 6); // パスフレーズの文字数
define('CAPTCHA_WIDTH', 100); // 画像の幅
define('CAPTCHA_HEIGHT', 25); // 画像の高さ

//ランダムなパスフレーズを生成します
$pass_phrase = "";
for ($i = 0; $i $pass_phrase .= chr(rand(97, 122));
}

//暗号化されたパスフレーズをセッション変数に保存します
$_SESSION['pass_phrase'] = SHA($pass_phrase);

//画像を作成します
$img = imagecreatetruecolor(CAPTCHA_WIDTH, CAPTCHA_HEIGHT);

//白の背景に黒のテキストとグレーのグラフィックを設定します
$bg_color = imagecolorallocate($img, 255, 255, 255) // 白
; $text_color = imagecolorallocate($img, 0, 0, 0) // 黒
; $graphic_color = imagecolorallocate($img, 64, 64, 64) // ダークグレー
;
// 背景を塗りつぶします
imagefilledrectangle($img, 0, 0, CAPTCHA_WIDTH, CAPTCHA_HEIGHT, $bg_color);

//ランダムな線を描画します
for ($i = 0; $i imageline($img, 0, rand() % CAPTCHA_HEIGHT, CAPTCHA_WIDTH, rand() % CAPTCHA_HEIGHT, $graphic_color);
}

// ランダムなドットを散りばめます
for ($i = 0; $i imagesetpixel($img, rand() % CAPTCHA_WIDTH, rand() % CAPTCHA_HEIGHT, $graphic_color);
}
//パスフレーズ文字列を描画します
imagettftext($img, 18, 0, 5, CAPTCHA_HEIGHT - 5, $text_color, 'Courier New Bold.ttf', $pass_phrase);
// ヘッダーを使用して画像を PNG として出力します
header('Content-type: image/png');
imagepng($img);

// クリーンアップ
imagedestroy($img);
?>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。