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

前端页面

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. numpy 数组的拼接

    一.数组的拼接 1.水平拼接 a.格式 np.hstack((数组1, 数组2)) # 注意: 值是元祖 # 0轴长要相同 b.例子 import numpy as np arr1 = np.aran ...

  2. 分布式唯一ID的生成方案

    分布式ID的特性 全局唯一 不能出现重复的ID,这是最基本的要求. 递增 有利于关系数据库索引性能. 高可用 既然是服务于分布式系统,为多个服务提供ID服务,访问压力一定很大,所以需要保证高可用. 信 ...

  3. JavaScript(2)---DOM详解

    JavaScript(2)---DOM详解 一.DOM概念 什么是DOM DOM全称为文本对象模型(Document Object Model),它定义了所有HTML元素的对象和属性,以及访问他们的方 ...

  4. selenium,xpath路径中引入变量

    比如,我需要获取每一条微博的阅读数,总不可能所有微博都找出xpath,然后获取阅读数 找规律 “//*[@id='Pl_Official_MyProfileFeed__20']/div/div[2]/ ...

  5. 用VLC搭建流媒体服务器

    用vlc搭建简单流媒体服务器(UDP和TCP方式) 这段时间用到了流媒体数据传输的TCP和UDP方式,感觉vlc可以做这方面的demo,这里总结下,也方便我以后查阅. 简介 VLC主页:http:// ...

  6. not,and,or

    sql语句中not and or的执行优先级从高到低依次为:not>and>or <> 不等于

  7. js关于时间(date)的比较

    之前在工作上遇到一个问题:使用一些时间插件,如果有俩个时间,要判断结束时间和开始时间的大小?后来就查找了一些资料,这边整理出俩个比较简便的方法. 在这我拿 laydate.js 这个插件来举例: 首先 ...

  8. Linux系统的用户和用户组管理

    一.用户账户管理 Linux/Unix是一个用户.多任务的操作系统:在讲Linux账号及账户组管理之前,先简单了解一下多用户.多任务操作系统的基本概念. Linux的单用户多任务 在Linux下,当你 ...

  9. SpringMVC 进阶

    请求限制 一些情况下我们可能需要对请求进行限制,比如仅允许POST,GET等... RequestMapping注解中提供了多个参数用于添加请求的限制条件 value 请求地址 path 请求地址 m ...

  10. CCF_ 201512-2_消除类游戏

    水平方向遍历一次,竖直方向遍历一次,将需要删除的位置标志入一个数组,最后比较输出即可. #include<cstdio> #include<iostream> using na ...