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
}
//暗号化されたパスフレーズをセッション変数に保存します
$_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);
?>