本文最后更新于 1646 天前,其中的信息可能已经有所发展或是发生改变。
备注
二进制安全字符串比较(区分大小):
int strcmp(string $str1, string $str2)
注意:$str1小于$str2返回<0,如果$str1大于$str2返回>0,如果两者相等,返回0
strip_tags:从字符串中去除HTML和PHP标记
1.注册页面。
<?php
$string = ‘qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789’;
$code = ”;
for ($i=1;$i<=4;$i++){
$code.='<span style="color:rgb(‘.mt_rand(0,255).’,’.mt_rand(0,255).’,’.mt_rand(0,255).’)">’.$string[mt_rand(0,strlen($string)-1)].'</span>’;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>注册页面</title>
</head>
<body>
<h1 align="center">笨猪注册页面</h1>
<form method="post" action="doAction.php">
<table border="1" cellpadding="0" cellspacing="0" width="50%" bgcolor="#ABCDEF" align="center">
<tr>
<td align="right">用户名</td>
<td><input type="text" name="username" placeholder="请输入合法用户名…"/>
</td>
</tr>
<tr>
<td align="right">密码</td>
<td><input type="password" name="password" placeholder="请输入密码…"/></td>
</tr>
<tr>
<td align="right">确认密码</td>
<td><input type="password" name="passwords" placeholder="请确认密码…"/></td>
</tr>
<tr>
<td align="right">邮箱</td>
<td><input type="text" name="email" placeholder="请输入合法的邮箱…"/></td>
</tr>
<tr>
<td align="right">兴趣爱好</td>
<td>
<input type="checkbox" name="fav[]" id="" value="PHP" />PHP
<input type="checkbox" name="fav[]" id="" value="JAVA" />JAVA
<input type="checkbox" name="fav[]" id="" value="PYTHON" />PYTHON
<input type="checkbox" name="fav[]" id="" value="GO" />GO
<input type="checkbox" name="fav[]" id="" value="Android" />Android
<input type="checkbox" name="fav[]" id="" value="C" />C
<input type="checkbox" name="fav[]" id="" value="C++" />C++
</td>
</tr>
<tr>
<td align="right">验证码</td>
<td><input type="text" name="verify" /><?PHP echo $code; ?>
<input type="hidden" name="verifys" value="<?PHP echo strip_tags($code); ?>"/>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="注册" /></td>
</tr>
</table>
</form>
</body>
</html>
2.处理页面。
<?php
//防止中文乱码
header('content-type:text/html;charset=utf-8');
$username = $_POST['username'];
$password = $_POST['password'];
$passwords = $_POST['passwords'];
$email = $_POST['email'];
$fav = $_POST['fav'];
//统一转成小写进行比较
$verify = strtolower($_POST['verify']);
$verifys = strtolower($_POST['verifys']);
$redirectUrl = '<a href="register.php">重新注册</a>';
//判断用户名是否为空
if(strlen($username)==0){
exit('请输入用户名<br/>'.$redirectUrl);
}else{
//判断用户名是否为字母开头
$ascii = ord($username{0});
//检测ascii码是否在65-90(A-Z)或者97-122(a-z)
if(!(($ascii>=65&&$ascii<=90)||($ascii>=97&&$ascii<=122))){
exit('用户名首字母需要以字母开始<br/>'.$redirectUrl);
}
}
//判断密码是否为空
if(strlen($password)==0){
exit('请输入密码<br/>'.$redirectUrl);
}else{
if(strlen($password<6)){
exit('密码长度不符合规范<br/>'.$redirectUrl);
}
}
//确认密码是否为空
if(strlen($passwords)==0){
exit('请输入确认密码<br/>'.$redirectUrl);
}else{
if($password !== $passwords){
exit('两次输入的密码不一致<br/>'.$redirectUrl);
}
}
//判断邮箱是否为空
if(strlen($email) == 0){
exit('请输入邮箱<br/>'.$redirectUrl);
}else{
//判断是否有@
if(strpos($email,'@') == false){
exit('邮箱不合法<br/>'.$redirectUrl);
}
}
//验证码是否为空
if(strlen($verify) == 0){
exit('请输入验证码<br/>'.$redirectUrl);
}else{
//判断验证码是否正确
if($verify !== $verifys){
exit('验证码输入不正确<br/>'.$redirectUrl);
}
}
if(!empty($fav)){
//将数组转换成字符串
$favstr = join(',',$fav);
}
$passwordMd5 = md5($password);
echo '恭喜注册成功,用户信息如下:<br/>';
$userinfo = <<<EOF
<table align="center" border="1" cellspacing="0" cellpadding="0" width="50%">
<tr>
<td>用户名</td>
<td>密码</td>
<td>邮箱</td>
<td>兴趣爱好</td>
</tr>
<tr>
<td>{$username}</td>
<td>{$passwordMd5}</td>
<td>{$email}</td>
<td>{$favstr}</td>
</tr>
</table>
EOF;
echo $userinfo;
?>
效果图: