Maison  >  Article  >  développement back-end  >  Implémentation du code PHP de la connexion en arrière-plan (y compris le code de vérification)

Implémentation du code PHP de la connexion en arrière-plan (y compris le code de vérification)

不言
不言original
2018-04-24 14:09:423936parcourir

Le contenu de cet article concerne l'implémentation du code PHP de la connexion en arrière-plan (y compris le code de vérification). Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

login.html文件
<html>
<title>login in</title>
<body>
<form action="handle_login.php" method="post"/>
用户名:<input type="text" name="username"/><br/>
密码:<input type="password" name="password"/><br/>
验证码:<input type="text" name="imgcode"><img src="code.php" width="200px" height="30px"><br/>
<input type="submit" name="button" value="登陆">
</form>
</body>
</html>  
 




code.php文件
<?php
session_start();//首先要启动session
// Set the content-type
header("Content-type: image/png"); // 告诉浏览器当前文件产生的结果以png形式进行输出
 
// Create the image
$im = imagecreate(200, 30);  // 创建一张宽为200,高为30的画布
 
// Create some colors
$bg = imagecolorallocate($im, 155, 100, 255); // 给画布加上背景颜色
$white = imagecolorallocate($im, 255, 255, 255);  // 三原色白色
//$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);  // 黑色
 
$numer_array = range(0,9); // 生成一个0到9范围的数组
$abc = range(&#39;a&#39;,&#39;z&#39;);     // 生成一个a到z范围的数组
$big_abc = range(&#39;A&#39;,&#39;Z&#39;);  // 生成一A到Z范围的数组
$big_chars = array_merge($numer_array,$abc,$big_abc); // 将上述三个数组进行合并
 
 
$font = &#39;simsun.ttc&#39;;  // 设定字体文件的路径
$myimagecode = &#39;&#39;;
for($i=0;$i<4;$i++){
   $str = $big_chars[rand(0,61)]; // 从合并后的数组中随机取一个字符
   $myimagecode = $myimagecode.$str; //将这个验证码字符窜存入变量myimagecode中
   $a=50*$i;
   $b=50*($i+1);
   imagettftext($im, 20, 0, mt_rand($a,$b), mt_rand(20,30), $black, $font, $str); // 将取出的字符写在画布上
}
$_SESSION[&#39;thisimagecode&#39;] = $myimagecode;
for($i=0;$i<200;$i++){
   imagesetpixel( $im,mt_rand(0,200),mt_rand(0,30),$white); // 给画布加上点
}  
 
for($i=0;$i<4;$i++){
    imageline($im, mt_rand(0,200),mt_rand(0,30), mt_rand(0,200), mt_rand(0,30),$black  ); //给画面加上线条
}       
 
imagepng($im);  // 将图像以png形式输出
imagedestroy($im);  // 将图像资源从内存中销毁,以节约资源
?>
 
handle_login.php文件
 
<?php
session_start();
#接受提交过来的用户名及密码
$username = trim($_POST[&#39;username&#39;]);//用户名
$password = trim($_POST[&#39;password&#39;]);//密码
$imgcode = strtolower($_POST[&#39;imgcode&#39;]);//接受从登陆输入框提交过来的验证码并转化为小写;
$myimagecode  = strtolower($_SESSION[&#39;thisimagecode&#39;]) ;//从session中取得验证码并转化为小写;
if($imgcode!=$myimagecode){
     echo &#39;请输入正确的验证码&#39;;exit;
}
#拿着提交过来的用户名和密码去数据库查找,看是否存在此用户名以及其密码  
$link=mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;123456&#39;);
mysql_query(&#39;set names utf8&#39;);
$re=mysql_select_db(&#39;companysystem&#39;,$link);
$sql="select *from admin where username = &#39;$username&#39;and password=&#39;$password&#39; ";
$result=mysql_query($sql);
$rows=mysql_fetch_assoc($result);
if($rows){
  $SESSION[&#39;is_login&#39;]=$rows[&#39;username&#39;];
  echo &#39;登陆成功&#39;;
 
}else{
  $is_login=&#39;&#39;;
  echo &#39;登陆失败&#39;;
}
?>
<.> Recommandations associées :

php+mysql réalise une page Web simple de connexion, d'enregistrement et de modification de mot de passe



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