PHP 認証コードの取得方法
マスターに私を追加するように頼んでください QQ779846529
-----解決策----- --- -
数字や文字をランダムに選択して画像として表示するだけです。
------解決策------------------
1.login.php ページの場合: このページの下に、
include ("conn.php"); //これは Mysql への接続です
session_start();
echo $_SESSION[check_pic];
if ($_POST) {
$code=$_POST[code];
if ($code!=$_SESSION[check_pic])
echo "<script>alert('検証コードが間違っています!');location.href='login.php';</script>";
}
?> ;
2. Math.random() の src='inc/vCode.php?tm='+inc/vCode.php、はいを参照しますvCode.php を現在のディレクトリの inc フォルダーに置きたい場合は、次のコードを作成します:
/*
* font.ttc フォントをディレクトリに配置します
$num 文字数
$size 文字サイズ
ランダムな色
*/
// vCode ******* *
function vCode($num = 4, $size = 20, $width = 0, $height = 0) {
session_start();
!$width && $width = $num * $size * 4 / 5 + 5;
!$height && $height = $size +10;
// 0 1 O l などを削除
$str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW"; '';
for ($i = 0; $i <$num; $i++) {
$code .= $str[mt_rand(0, strlen($str) - 1)]; > }
$_SESSION[check_pic]=$code;
// 画像を描画します
$im = imagecreatetruecolor($width, $height)
// 使用する色を定義します
$back_color = imagecolorallocate($im, 235, 236, 237);
$boer_color = imagecolorallocate($im, 118, 151, 199)
$text_color = imagecolorallocate($im, mt_rand(0, 200) ), mt_rand(0, 120), mt_rand(0, 120));
// 背景を描画します
imagefilledrectangle($im, 0, 0, $width, $height, $back_color);
// 境界線を描画します
imagerectangle($im, 0, 0, $width -1, $height -1, $boer_color)
// 干渉線を描画します
for ($i = 0; $i < 5; $i++) {
$font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255)); $im, mt_rand(- $width , $width), mt_rand(- $height, $height), mt_rand(30, $width * 2), mt_rand(20, $height * 2), mt_rand(0, 360), mt_rand(0, 360), $ font_color);
}
// 干渉点を描画
for ($i = 0; $i <50; $i++) {
$font_color = imagecolorallocate ($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $font_color);
}
// 検証コードを描画
imagefttext($im, $size, 0, 5, $size +3, $text_color, 'simkai.ttf', $code); 🎜> header("キャッシュ制御: max-age=1、s-maxage=1、no-cache、must-revalidate");
header("Content-type: image/png"); imagepng($im);
imagedestroy($im);
}
vCode(4, 20);
// 4 文字、サイズ 20
// メソッドの呼び出し:
?>