我的php代码中登陆界面加一个验证码,如何实现

表单
<div id="login">
<form action="login.php" method="post">
账户 <input type="text" name="username" size="20" /><br />
密码 <input type="password" name="password" size="20"/><br />

<input name="yanzhengma" type="yzm" value="验证码"/>
<input type="image" src="image/login_btn.jpg"/>
<input name="input3" type="reset" value="重新输入"/>
<a href="test.php" title="注册" id="zhuce">一键注册</a>
</form>
</div>
登陆的页面
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题</title>
</head>
<body>
</body>
<?php
session_start();
$nickname=$_POST['username'];
$password=$_POST['password'];
if(empty($nickname) || empty($password)){
exit;
}
$link=mysql_connect('localhost','root','');
mysql_select_db('shop',$link);
mysql_query('set names utf8',$link);
$sql="SELECT id,`password` FROM `user`
WHERE nickname='{$nickname}'";
$result=mysql_query($sql,$link);
if(mysql_num_rows($result)==1){
$row=mysql_fetch_array($result,MYSQL_ASSOC);
if($password==$row['password']){
echo "<script type='text/javascript'>
if(confirm('用户登陆成功,是否跳转到商城首页?')) {
window.location.href='index1.php';}</script>";
$_SESSION['id']=$row['id'];
$_SESSION['nickname']=$nickname;
}
else{
echo '密码错误!';
}
}
else{
echo '用户名错误!';
}
mysql_close($link);
?>
</html>

  php登陆页面+验证码的实现,参考如下:

  1、首先新建一个php站点;

  2、先新建一个命名为yzm.php文件,双击编辑,清空Dreamweaver自动生成的HTML代码,如下;

  <?php

  session_start();

  header("Content-Type:image/png");  //设置页面的头信息输出为png图片$im=imagecreate(60,20);   //创建一个画布

  $im_color=imagecolorallocate($im,100,100,100);  //填充验证码背景为灰色

  for($i=0;$i<4;$i++)

  {

  $line_color=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));

  imageline($im,rand(0,60),rand(0,20),rand(0,60),rand(0,20),$line_color);

  }

  //实用循环画四条随机颜色的干扰线

  $n=rand(1000,9999);

  $_SESSION["y"]=$n;

  $p=0;


  for($i=0;$i<4;$i++)

  {

  $p=$p+10;

  $num=substr($n,$i,1);  //把验证码数字一个一个的取出来

  $num_color=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));

  imagettftext($im,rand(10,15),rand(-10,10),$p,rand(10,15),$num_color,"font1.ttf",$num);


  }

  //设置每个验证码数字不同的颜色,数字角度偏差和字体。

  imagepng($im);  //输出验证码

  imagedestroy($im); //释放内存

  ?>

  3、新建login.php文件;

  用户名文本框昵称为name;

  密码文本框为psw;

  验证码为yzm;

  表单的提交方式为post,提交到check.php。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-14

  php登陆页面+验证码的实现,参考如下:
  1、首先新建一个php站点;
  2、先新建一个命名为yzm.php文件,双击编辑,清空Dreamweaver自动生成的HTML代码,如下;
  <?php
  session_start();
  header("Content-Type:image/png");
 //设置页面的头信息输出为png图片$im=imagecreate(60,20);
 
//创建一个画布
  $im_color=imagecolorallocate($im,100,100,100);
 //填充验证码背景为灰色
  for($i=0;$i<4;$i++)
  {
  $line_color=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
  imageline($im,rand(0,60),rand(0,20),rand(0,60),rand(0,20),$line_color);
  }
  //实用循环画四条随机颜色的干扰线
  $n=rand(1000,9999);
  $_SESSION["y"]=$n;
  $p=0;
  for($i=0;$i<4;$i++)
  {
  $p=$p+10;
  $num=substr($n,$i,1);
 //把验证码数字一个一个的取出来
  $num_color=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
  imagettftext($im,rand(10,15),rand(-10,10),$p,rand(10,15),$num_color,"font1.ttf",$num);
  }
  //设置每个验证码数字不同的颜色,数字角度偏差和字体。
  imagepng($im);
 //输出验证码
  imagedestroy($im);
//释放内存
  ?>
  3、新建login.php文件;
  用户名文本框昵称为name;
  密码文本框为psw;
  验证码为yzm;
  表单的提交方式为post,提交到check.php。

第2个回答  2014-06-11
例如验证码是4位数字,就随机一个rand(1000,9999),然后存到session里或者存到数据库里,用户提交表单的时候验证下就行。追问

我做的这个随机数是把这个放在我的login页面下,就可以了,再在表单那个界面做验证

 <input type="hidden" name="authnum" value="<?php echo $authnum; ?>"/> 

                <?php echo $authnum; ?>

可是我的为什么不行,能帮我改下吗?

追答

没明白什么意思。。。。你是想把你生成的随机参数赋值给一个隐藏的input里面然后和用户写入的input的验证码值比较他输入的是否正确吗?

第3个回答  2015-04-21
表单加入一行,引入生成验证码的图片,找个生成的下载下来,引上去就哦了