声明:本程序纯粹是本人在学习过程中突发奇想做的,并未考虑任何可行性,实用性,只是留下来供以后参考。

前端页面

sign.html

<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>QQ注册&登录</title>
<link rel='stylesheet' type='text/css' href='./sign.css'>
<script src="http://cdn.bootcss.com/blueimp-md5/1.1.0/js/md5.js"></script>
<script src='./sign.js' type='text/javascript'> </script>
</head>
<body>
<div class='header'>QQ注册&登录</div>
<div class='container'>
<h3>注册</h3>
<form name='signup' action='./signup.php' onsubmit='return validateForm1()' method='post'>
QQ:<input type='text' name='uid' id='userid1'>
密码:<input type='password' name='upd' id='userpassword1'>
<input type='submit' onsubmit="" value='注册'>
</form>
<h3>登录</h3>
<form name='signin' action='./signin.php' onsubmit='return validateForm2();' method='post'>
QQ:<input type='text' name='uid' id='userid2'>
密码:<input type='password' name='upd' id='userpassword2'>
<input type='submit' onsubmit="" value='登录'>
</form>
</div>
</body>
</html>

CSS

sign.css

* {
margin: 0 0 0 0;
padding: 0 0 0 0;
} body {
background:whitesmoke;
font-size: 1em;
}
.header {
height:3em;
font-size: 2.5em;
line-height: 3em;
color:gray;
border-bottom:solid black 1px;
text-align: center;
}
.container {
text-align: center;
}

JS

sign.js

function validateForm1(){
var id = this['userid1'].value;
var password = this['userpassword1'].value;
if ( !id.match(/^\d{5,10}$/) ) {
alert ('ID必须为5至10位数字');
return false;
}
if ( !password.match(/^[\d\w]{6,18}$/) ) {
alert ('密码必须为6至32位数字和(或)字母');
return false;
}
this['userpassword1'].value = md5(password);
} function validateForm2(){
var id = this['userid2'].value;
var password = this['userpassword2'].value;
if ( !id.match(/^\d{5,10}$/) ) {
alert ('ID必须为5至10位数字');
return false;
}
if ( !password.match(/^[\d\w]{6,18}$/) ) {
alert ('密码必须为6至18位数字和(或)字母');
return false;
}
this['userpassword2'].value = md5(password);
}

服务器端脚本

signin.php

<?php
$uid = $_POST['uid'];
$upd = $_POST['upd']; $upd = md5($upd); $conn = mysqli_connect('localhost', 'myqq', 'myqq', 'qq');
if (!$conn)
{
die ("数据库连接失败" . mysqli_connect_error());
} $sql_select = <<<EOF
select id,password from user where id = '$uid'
EOF;
$result = $conn->query($sql_select);
if ( $result->num_rows == 1){
//echo '用户存在';
$dbupd = ($result->fetch_assoc())['password'];
if ( $dbupd == $upd ){
echo "登录成功";
}
else {
echo "密码错误";
//echo "<br>" . $upd . "<br>" . $dbupd;
} }
else {
echo "用户不存在";
}
?>

signup.php

<?php
$uid = $_POST['uid'];
$upd = $_POST['upd']; $upd = md5($upd);
//echo $upd . '<br>';
//echo $uid . $upd;
$conn = mysqli_connect( 'localhost', 'myqq', 'myqq', 'qq' );
if (!$conn){
die ("数据库连接失败" . mysqli_connect_error() );
} $sql_select = <<<EOF
select id,password from user where id = '$uid'
EOF;
//echo $sql_select;
$result = $conn->query( $sql_select ) ;
if ( $result->num_rows <= 0){
$sql_insert = <<<EOF
insert into user values($uid, '$upd')
EOF;
if ( $conn->query($sql_insert) === TRUE )
{
echo '注册成功';
}
else {
echo "注册失败,请重试" . $sql . '<br>' . $conn->error;
}
}
else {
echo "用户已存在";
}
$conn-close();
?>

用PHP&JS实现的ID&密码校验程序的更多相关文章

  1. 用python实现密码校验程序

    密码需要符合下面的要求: 8个字符以上,包含数字,大小写,开头不能为特殊字符. #! /usr/bin/pythonimport re password = str(input()) def lenO ...

  2. MySQL_(Java)使用JDBC创建用户名和密码校验查询方法

    MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL数据库中的数据,数据库名garysql,表名garytb,数据库中存在的用户表 通过JDBC对MySQL中的数据用户名和密码 ...

  3. JS实现登录页密码的显示和隐藏功能

    在登录页经常会用到通过点击文本框的类似小眼睛图片来实现隐藏显示密码的功能,其实实现原理很简单,通过点击事件来改变input的type类型,具体过程看代码: 在没给大家分享实现代码之前,先给大家展示下效 ...

  4. 密码校验正则表达式(java 环境)

    密码校验需求: 1) 密码控制只能输入字母.数字.特殊符号(~!@#$%^&*()_+[]{}|\;:'",./<>?)2) 长度 6-16 位,必须包括字母.数字.特殊 ...

  5. js 正则之 判断密码类型

    原文:js 正则之 判断密码类型 今天没啥写的,就分享个思路吧.之前在群里讨论的时候,谢亮兄弟说判断密码是否是纯数字,纯字母之类的.如果用 , 条判断,那就老长一大段了.这个思路是我之前看 jQuer ...

  6. 针对单个 js 文件禁用 ESLint 语法校验

    问题描述: 在 Vue-cli 创建的项目中,使用了 ESLint 规范代码的项目中 如何针对单个 js 文件禁用 ESLint 语法校验,但整个项目依然保留 ESLint 的校验规则? 解决方案: ...

  7. 用servlet进行用户名和密码校验

    用servlet进行用户名和密码校验 先来看看效果-- 这里为了方便查看,密码框并没有使用password输入框,而是使用了text框 总体来说思路还是比较简单 1.先来个form,配置好action ...

  8. js 给指定ID赋值

    js 给指定ID赋值 <script language="javascript" type="text/javascript"> document. ...

  9. 使用CAtlRegExp类进行密码校验

    前言 最近做了一个小需求,新建用户时输入的密码必须包含数字.小写字母.大写字符以及特殊字符,目的是为了增强密码的强度,如果没有其中一项,就需要弹出窗口进行提示. 正则表达式          对于此类 ...

随机推荐

  1. 保存数据到txt

    join用的不错 a = "Hello, world" b = "你好,世界" c = "How are you?" with open(f ...

  2. 利用Springmvc的AbstractXlsxView下载Excel文件

    设计一个模型,在针对多中数据类型进行拓展 public abstract class ExcelView extends AbstractXlsxView { public CellStyle cel ...

  3. python super()函数:调用父类的构造方法

    python子类会继承父类所有的类属性和类方法.严格来说,类的构造方法其实就是实例方法,因此,父类的构造方法,子类同样会继承. 我们知道,python是一门支持多继承的面向对象编程语言,如果子类继承的 ...

  4. Html中div块居中显示

    表面上这个问题很难,因为涉及到浏览器窗体大小,导致部分界面效果不一致.图中的方法适用于div块大小不变的界面. 如上所示,将其分为两块,margin-left和margin-top的值均分别为widt ...

  5. hadoop中两种上传文件方式

    记录如何将本地文件上传至HDFS中 前提是已经启动了hadoop成功(nodedate都成功启动) ①先切换到HDFS用户 ②创建一个user件夹 bin/hdfs dfs -mkdir /user ...

  6. scanf 函数笔记

    函数声明 int scanf(const char *format, ...); 说明 <返回值> scanf ("<格式化字符串>", <参数表&g ...

  7. [ZJOI2006]书架(权值splay)

    [ZJOI2006]书架(luogu) Description 题目描述 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号. 小T在看 ...

  8. Docker基础内容之命令大全

    run(未补全) 说明:创建一个新的容器并运行一个命令 语法如下: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 选项说明: -a stdin: 指定标准 ...

  9. JDK源码之Boolean类分析

    一 简介 boolean类型的封装类,将基本类型为boolean的值包装在一个对象中,实现序列化接口,和Comparable接口 额外提供了许多便捷方法,比较简单,直接贴代码分析 二 源码分析 //t ...

  10. SpringBoot使用JMS(activeMQ)的两种方式 队列消息、订阅/发布

    刚好最近同事问我activemq的问题刚接触所以分不清,前段时间刚好项目中有用到,所以稍微整理了一下,仅用于使用 1.下载ActiveMQ 地址:http://activemq.apache.org/ ...