验证码登录

1. mt_rand

作用:生成随机数

int mt_rand ( void )

int mt_rand ( int $min , int $max )

参数:min  可选的、返回的最小值(默认:0)

      max可选的、返回的最大值(默认: mt_getrandmax()

返回值:返回 min (或者 0) 到 max (或者是到 mt_getrandmax() ,包含这个值)之间的随机整数

 

2.intval()

intval — 获取变量的整数值

int intval ( mixed $var [, int $base = 10] )

参数:var  :要转换成 integer 的数量值

      base: 转化所使用的进制

Note:

如果 base 是 0,通过检测 var 的格式来决定使用的进制:

如果字符串包括了 "0x" (或 "0X") 的前缀,使用 16 进制 (hex);否则,

如果字符串以 "0" 开始,使用 8 进制(octal);否则,

将使用10 进制 (decimal)。

返回值:成功时返回 var 的integer 值,失败时返回 0。 空的 array 返回 0,非空的array 返回 1。

 

3.mysql_fetch_array()

作用:从结果集中取得一行作为关联数组或数字数组或二者皆有

arraymysql_fetch_array(resource $result, [int $result_type]);

参数:$result结果集

      $result_type  MYSQL_ASSOC 返回关联数组

                  MYSQL_NUM   返回数字数组

                  MYSQL_BOTH   返回关联数组和数字数组


//1 index.php
<?php include "conn/conn.php"; ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>验证码技术登录</title>
</head>
<style>
td{  font-size:9pt;}
</style>
<script language="javascript">
	function check(myform){
		if(myform.txt_user.value==""){
			alert("请输入用户名!");myform.txt_user.focus();return false;		
		}
		if(myform.txt_pwd.value==""){
			alert("请输入密码!");myform.txt_pwd.focus();return false;
		}
		if(myform.txt_yan.value==""){
			alert("请输入验证码!");myform.txt_yan.focus();return false;
		}
		if(myform.txt_yan.value!=myform.txt_hyan.value){
			alert("对不起,您输入的验证码不正确!");myform.txt_yan.focus();return false;
		}
	}
</script>
<body>
<table width="693" height="346" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td >
	<form name="myform" method="post"  action="checkuser.php">
	<table width="693" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td height="42" colspan="5"> </td>
      </tr>
      <tr>
        <td width="154" height="117" rowspan="4"> </td>
        <td height="13" colspan="3" align="center" valign="top"> </td>
        <td width="160" rowspan="4"> </td>
      </tr>
      <tr>
        <td width="99" height="30" align="right" valign="middle">用户名:</td>
        <td colspan="2" align="left" valign="middle"><input type="text" name="txt_user"></td>
      </tr>
      <tr>
        <td height="30" align="right" valign="middle">密  码:</td>
        <td height="30" colspan="2" align="left" valign="middle"><input type="text" name="txt_pwd"></td>
      </tr>
      <tr>
        <td height="30" align="right" valign="middle">验证码:</td>
        <td width="218" height="32" align="left" valign="middle"><input type="text" name="txt_yan">
		<?php
		   $num=intval(mt_rand(1000,9999));
		   for($i=0;$i<4;$i++){
			echo "<img src=images/checkcode/".substr(strval($num),$i,1).".gif>";   //输出随机的数字图形
		   }
		?> 
		<input type="hidden" name="txt_hyan" id="txt_hyan" value="<?php echo $num;?>" >
</td>
        <td width="62" align="left" valign="middle"><input type="submit" name="Submit" value="登录" onClick="return check(myform);"></td>
      </tr>
      <tr>
        <td height="62" colspan="5"> </td>
      </tr>
    </table>
	</form>
	</td>
  </tr>
</table>
</body>
</html>

//2. conn/conn.php
<?php
	$link=mysql_connect("localhost","root","root") or die("数据库连接失败".mysql_error());
	mysql_select_db("db_database18",$link);
	mysql_query("set names gb2312");
?>

//3. checkuser.php
<?php
include "conn/conn.php";
$name=$_POST[txt_user];
$pwd=$_POST[txt_pwd];
$sql=mysql_query("select * from tb_user where username='".$name."' and password='".$pwd."'");
$result=mysql_fetch_array($sql);
if($result!=""){
?>
<script language="javascript">
	alert("login success");window.location.href="afterlogin.php";
</script>
<?php
}else{
?>
<script language="javascript">
	alert("对不起,您输入的用户名、密码不正确,请重新输入!");window.location.href="index.php";
</script>	
<?php
	}
?>

4. afterlogin.php
<?php
  phpinfo();
?>

5.database--tb_user表

mysql> describe tb_user;

+----------+-------------+------+---------+----------+----------------+

| Field     | Type        | Null  | Key   | Default |    Extra        |

+-------------+-----------------+------+---------+----------+----------------------+

| id              | int(4)           | NO   | PRI    | NULL    | auto_increment |

| username | varchar(20) | NO   |           | NULL    |                          |

| password | varchar(20) | NO   |            | NULL    |                          |

+-----

 

mysql> select * from tb_user;

+----+--------------+-------------+

| id  | username | password |

+----+--------------+-------------+

|  1   |mr              | mrsoft     |

+----+--------------+-------------+


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值