ホームページ  >  記事  >  バックエンド開発  >  PHPで校正を実装する方法

PHPで校正を実装する方法

藏色散人
藏色散人オリジナル
2021-11-22 10:13:301593ブラウズ

php で検証を実装する方法: 1. "session_start();" 関数を宣言します; 2. 検証コードを実装するコードを作成します; 3. 検証コードが実装される前に空の変数を宣言して保存します;4. POST メソッドを使用して検証コードを受信します。

PHPで校正を実装する方法

#この記事の動作環境: Windows7 システム、PHP7.1、Dell G3 コンピューター。

php で検証を実装する方法

PHP は検証コード検証関数を実装します

検証コードは SESSION を使用して検証されますPHPで実現する関数。

関数 session_start(); を先頭で宣言して、この関数を使用することをサーバーに伝えます。

session_start();

次に使用するのは、検証コードを実装するコードです。ここでは例として英語の数値コードを使用します。

$image = imagecreatetruecolor(100, 30); //创建一个100×30的画布 
$white = imagecolorallocate($image,255,255,255);//白色 
imagefill($image,0,0,$white);//覆盖黑色画布

次に、検証コードが実装される前に空の変数を宣言して、検証コードを格納します。

$session = ""; //空变量 ,存放验证码 
for($i=0;$i<4;$i++){ 
  $size = 6; 
  $x = $i*25+mt_rand(5,10); 
  $y = mt_rand(5,10); 
  $sizi_color = imagecolorallocate($image,mt_rand(80,220),mt_rand(80,220),mt_rand(80,220)); 
  $char = join("",array_merge(range(&#39;a&#39;,&#39;z&#39;),range(&#39;A&#39;,&#39;Z&#39;),range(0,9))); 
  $char = str_shuffle($char); 
  $char = substr($char,0,1); 
  imagestring($image,$size,$x,$y,$char,$sizi_color); 
  $session .= $char ; //把验证码的每一个值赋值给变量 
} 
  $_SESSION[&#39;session&#39;] = $session; //这个变量的值与用户输入的值相等
for($k=0;$k<200;$k++){ 
  $rand_color = imagecolorallocate($image,mt_rand(50,200),mt_rand(50,200),mt_rand(50,200)); 
  imagesetpixel($image,mt_rand(1,99),mt_rand(1,29),$rand_color); 
} 
  
for($n=0;$n<5;$n++){ 
  $line_color = imagecolorallocate($image,mt_rand(80,220),mt_rand(80,220),mt_rand(80,220)); 
  imageline($image,mt_rand(1,99),mt_rand(1,29),mt_rand(1,99),mt_rand(1,29),$line_color); 
} 
  
header(&#39;content-type:image/png&#39;);//设置文件输出格式 
imagepng( $image ); //以png格式输出$image图像 
imagedestroy( $image ); //销毁图像

POST メソッドを使用して確認コードを受け取ります。 strto lower 関数は、サーバーで大文字と小文字を区別しないようにします。これにより、ユーザーの入力エラー率を効果的に減らすことができます。

if(isset($_POST[&#39;session&#39;])){ 
  session_start(); 
  if(strtolower($_POST[&#39;session&#39;])==strtolower($_SESSION[&#39;session&#39;])){ 
    echo&#39;<font color="#0000CC">输入正确</form>&#39;; 
  }else{ 
    echo &#39;<font color="#CC0000"><b>输入错误</b></font>&#39;; 
  } 
  exit(); 
}

以下は HTML ページのコードです。

<!DOCTYPE html> 
<html> 
<head> 
 <meta charset="utf-8"/> 
 <title>确认验证码</title> 
</head> 
<body> 
  <form method="post" action="./tushu.php"> 
  <p>验证码图片:<img  id="img" border="1" src="http://localhost//xxx.php"    style="max-width:90%"  style="max-width:90%" alt="PHPで校正を実装する方法" ></p> 
  <a href="javascript:void(0)" rel="external nofollow" onclick="document.getElementById(&#39;img&#39;).src=&#39;http://localhost//xxx.php&#39;">看不清?换一个</a> 
  <p>请输入图片中的验证码:<input type="text" name="session" value=""/></p> 
  <p><input type="submit" value="提交" style="padding:6px 10px;"></p> 
  </form> 
</body> 
</html>

ここでは、HTML コードにイベント onclick が追加されているという特別な説明を示します。ユーザーが現在の確認コードを認識できない場合、ブラウザを更新する必要はなく、直接「」をクリックすることができます。はっきり見えませんか? 別のものを変更してください」と確認コードを変更してください。

PHPで校正を実装する方法

推奨学習: 「PHP ビデオ チュートリアル

以上がPHPで校正を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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