完成一个用户注册页面,对表单字段进行验证(密码长度、密码一致、验证码验证、用户首字母须大写等)
16lz
2021-08-12
完成的功能对表单字段进行验证
密码长度、密码一致、验证码验证、用户首字母须大写等
效果演示
<?php
error_reporting(E_ALL & ~E_NOTICE);
// 设置一串字符串
$codes = '1234567890qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM';
// 获取字符串索引
$textCode = '';
for ($i = 0; $i < 4; $i++) {
// $textCode .= "<span style = 'color:rgb( " . mt_rand(0, 255) . "," . mt_rand(0, 255) . "," . mt_rand(0, 255) . ") '>" .
// $codes{mt_rand(0, strlen($codes) - 1)} . "</span>";
$textCode .= $codes{mt_rand(0, strlen($codes) - 1)};
}
// var_dump($textCode);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.0.0/css/bootstrap.css" rel="stylesheet">
<script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.0.0/js/bootstrap.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
<title>注册验证信息</title>
</head>
<body>
<div class="container">
<form method="post" action="login.php">
<div class="form-group">
<label for="text">用户名</label>
<input type="text" class="form-control" name="text" aria-describedby="emailHelp" value="<?= $_POST['text'] ?>" required>
<small id="emailHelp" class="form-text text-muted">首字母需要大写,并且用户名在6-12位之间</small>
</div>
<div class="form-group">
<label for="password">密码</label>
<input type="password" class="form-control" name="password" required>
</div>
<div class="form-group">
<label for="psw">再输一遍</label>
<input type="password" class="form-control" name="psw" required>
</div>
<div class="form-group">
<input type="text" class="form-control" name="code" placeholder="验证码">
<input type="text" class="form-control" name="textCode" value="<?=$textCode?>" hidden>
<small id="emailHelp" class="form-text text-muted" name="tecode"><?=$textCode ?></small>
</div>
<button type="submit" class="btn btn-primary" name="button" value="1">注册</button>
</form>
<iframe id="iframeForm" name="iframeForm" style="display:none;"></iframe>
</div>
<?php
if ($_POST['button']) {
$username = $_POST['text'];
// echo $username;
// 验证用户名
if (strlen($username) >= 6 && strlen($username) <= 12) {
if (ord($username) < 65 || ord($username) > 90) {
echo '<span style="color:red">用户名首字母须大写</span>';
} else {
echo '<span style="color:green">用户名正确</span>';
// 验证密码
if(strcmp($_POST['password'],$_POST['psw']) == 0) {
echo '<span style="color:green">密码输入一致</span>';
// 验证验证码
var_dump($_POST['code']);
var_dump(sprintf($_POST['textCode']));
if(strcasecmp($_POST['textCode'],$_POST['code']) == 0){
echo '<span style="color:green">验证码正确</span>';
}else{
echo '<span style="color:red">验证码不正确</span>';
}
}else{
echo '<span style="color:red">两次密码输入不一致</span>';
}
}
} else {
echo '<span style="color:red">用户名需要在6-12位字符之间</span>';
}
}
?>
<script>
document.forms[0].target="rfFrame";
</script>
</body>
</html>
答疑:一开始生成的验证码是四位带随机颜色的验证码,但是验证码字符串长度过长了,和我输入的长度不一致,这个问题要怎么解决?
更多相关文章
- php简单实现模拟用户登陆验证
- PHP模拟用户登陆验证
- PHP注册验证判断
- 完成一个用户注册页面, 用xmind文件中总结的字符串函数库,对表单
- zy0809
- 用PHP写一个用户注册验证
- 配置SSH密码登录
- 注册表单、基本选择器及上下文选择器
- 18.)PHPWeb开发框架~Laravel中表单自动验证机制配置