Maison >développement back-end >tutoriel php >PHP implémente la fonction de code de vérification de connexion

PHP implémente la fonction de code de vérification de connexion

墨辰丷
墨辰丷original
2018-05-16 17:54:447367parcourir

Cet article présente principalement la fonction d'écriture du code de vérification de connexion en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Déclarez la fonction session_start() en haut ; indiquez au serveur que nous souhaitons utiliser cette fonction.

session_start();

La prochaine chose que nous utilisons est le code pour implémenter le code de vérification. Ici, nous utilisons les codes numériques anglais comme exemple.

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

Déclarez ensuite une variable vide avant que le code de vérification ne soit implémenté pour stocker le code de vérification.

$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 ); //销毁图像

Utilisez la méthode POST pour recevoir le code de vérification. La fonction strtolower rend le serveur insensible à la casse. Cela peut réduire efficacement le taux d'erreur de saisie de l'utilisateur.

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(); 
}

Ce qui suit est le code de la page 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" width="100" height="30"></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>

Recommandations associées :

Fonction de code de vérification de connexion d'écriture PHP avec méthode d'appel

Code d'implémentation du code de vérification de connexion Java

MVC utilise JiVerification pour créer des codes de vérification de connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn