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 |
+----+--------------+-------------+