html页面实现登录验证码功能(纯前端)

html+css+javascript简易实现注册或登录时实现验证码功能:

原文链接:https://blog.csdn.net/weixin_41472431/article/details/90732468

<!DOCTYPE HTML>
<html>
	<head>
		<title>注册模块</title>
		<meta charset="utf-8">
		<style>
			#vcode {
				height: 35px;
				width: 40%;
				font-size: 15pt;
				margin-left: 15%;
				border-radius: 5px;
				border: 1;
				padding-left: 8px;
			}
			#code {
				color: #ffffff;
				/*字体颜色白色*/
				background-color: #000000;
				font-size: 20pt;
				font-family: "华康娃娃体W5";
				padding: 5px 35px 10px 35px;
				margin-left: 5%;
				cursor: pointer;
			}
			#search_pass_link {
				width: 70%;
				text-align: right;
				margin: 0 auto;
				padding: 5px;
			}
			.btns {
				width: 30%;
				margin-left: 13%;
				height: 40px;
				border: 0;
				font-size: 14pt;
				font-family;
				"微软雅黑";
				background-color: #FC5628;
				color: #ffffff;
				cursor: pointer;
				/*设置指针鼠标的样式*/
				border-radius: 20px;
				/*设置圆角样式*/
				border: 0;
			}
		</style>
	</head>

	<body leftmargin="0" onload="changeImg()">
		<div class="main_bar">
				<form action="login.html" onsubmit="return check()">
						<input type="text" id="vcode" placeholder="验证码" value="验证码" onfocus="this.value=''" onblur="if(this.value=='')this.value='验证码'" /><span id="code" title="看不清,换一张"></span>
						<div id="search_pass_link">
						</div>
						<input type="submit" id="submit" value="登录" class="btns" onmouseover="this.style.backgroundColor='#FF8D00'" onmouseout="this.style.backgroundColor='#FC5628'">
						<input type="reset"  value="取消" class="btns" onmouseover="this.style.backgroundColor='#FF8D00'" onmouseout="this.style.backgroundColor='#FC5628'">

				</form>
		</div>
	</body>


	<script type="text/javascript">

		var code; //声明一个变量用于存储生成的验证码
		document.getElementById("code").onclick = changeImg;
		function changeImg() {
			var arrays = new Array(
				'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
				'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
				'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
				'u', 'v', 'w', 'x', 'y', 'z',
				'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
				'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
				'U', 'V', 'W', 'X', 'Y', 'Z'
			);
			code = ''; //重新初始化验证码
			//alert(arrays.length);
			//随机从数组中获取四个元素组成验证码
			for(var i = 0; i < 4; i++) {
				//随机获取一个数组的下标
				var r = parseInt(Math.random() * arrays.length);
				code += arrays[r];
			}
			document.getElementById('code').innerHTML = code; //将验证码写入指定区域
		}


		//效验验证码(表单被提交时触发)
		function check() {

			//获取用户输入的验证码
			var input_code = document.getElementById('vcode').value;
			if(input_code.toLowerCase() == code.toLowerCase()) {
				//验证码正确(表单提交)
				return true;
			}
			alert("请输入正确的验证码!");
			//验证码不正确,表单不允许提交

			return false;

		}

        </script>
</html>
  • 19
    点赞
  • 187
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Vue 实现登录验证功能的代码可以分为前端和后端两部分。 前端部分: 在登录页面中添加验证码输入框和验证码图片展示区域: ```html <template> <div> <input type="text" v-model="captcha" placeholder="请输入验证码"> <img :src="captchaUrl" @click="refreshCaptcha"> </div> </template> ``` 在 script 标签中定义相关数据和方法: ```javascript <script> export default { data() { return { captcha: '', captchaUrl: '' } }, methods: { // 刷新验证码图片 refreshCaptcha() { this.captchaUrl = '/api/captcha?' + Math.random() } }, mounted() { this.refreshCaptcha() } } </script> ``` 后端部分: 后端需要实现一个生成验证码图片的接口,该接口返回一个包含验证码图片和验证码值的 JSON 数据。可以使用第三方库 `captcha` 生成验证码图片。 ```python from flask import Flask, jsonify, make_response from captcha.image import ImageCaptcha import random app = Flask(__name__) # 生成验证码图片的接口 @app.route('/api/captcha') def generate_captcha(): # 随机生成验证码 captcha = ''.join(random.sample('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 4)) # 生成验证码图片 image = ImageCaptcha().generate_image(captcha) # 将验证码图片转为二进制流 image_data = image.getvalue() # 将验证码保存在 session 中 session['captcha'] = captcha.lower() # 返回包含验证码图片和验证码值的 JSON 数据 response = make_response(image_data) response.headers['Content-Type'] = 'image/png' return response if __name__ == '__main__': app.run() ``` 在前端登录页面中,通过调用 `/api/captcha` 接口获取验证码图片和验证码值,并在页面中展示。用户输入验证码后,将验证码值和用户名密码一起提交到后端进行验证

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习的大雄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值