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

前端页面

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. Qt Installer Framework翻译(3-4)

    更新组件 下图说明了用于更新已安装组件的默认工作流程: 本节使用在macOS上运行的Qt 5维护工具为例,来演示用户如何更新已安装组件. 启动更新程序 用户启动维护工具时,将打开"简介&qu ...

  2. Chrome浏览器所有页面全部崩溃解决办法。

    今晚写代码的时候更新了一下Chrome,结果打开所有网页都提示 喔唷 崩溃了,而且找到c盘内没有bd0001.sys文件,电脑内也无任何百度系的软件,此解决办法pass. 折腾了半天从google中找 ...

  3. HTTP的传输编码(Transfer-Encoding:chunked)

    转载自HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP,本来是将这篇文章收藏在我的有道云笔记的,但是今天复习的时候看着这个标题这尴尬,这里转载一下-... 什么是传输编码? 传输编 ...

  4. [总结]ACM模拟总结

    1.心态一定要稳,千万不要慌. 2.内部交流要多点,说不定就讨论出有用的性质了. 3.题目细节一定要想清楚. 4.一道题绝对不能让多个人来写. 5.英语要好好学.

  5. react-native--->RN发送/接收事件机制

    import { AppRegistry, StyleSheet, Text, View, Platform, NativeAppEventEmitter, DeviceEventEmitter, } ...

  6. Fibonacci Nim(斐波那契尼姆)游戏

    游戏描述: Fibonacci Nim是Nim游戏的变种,其规则为两名玩家从一堆硬币中交替移除硬币,第一步中,不允许玩家拿走所有硬币,也不允许不取,并且在每次后续移动中,移除的硬币数量最多可以是上一次 ...

  7. 关于基本布局之——Grid布局

    Gird布局 一.关于概念 网格布局(Grid)是一个很强大的 CSS 布局方案.它可以将网页划分为多个网格任意拼接的布局,可以灵活的运用并实现出多种布局形式. (grid和inline-grid区别 ...

  8. Shell常用语句及结构

    条件判断语句之if if 语句通过关系运算符判断表达式的真假来决定执行哪个分支:shell有三种if语句样式,如下: 语句1 if [ expression ] then Statement(s) t ...

  9. Mavn 项目 引入第三方jar包 导致ClassNotFoundException

    案例 我有一个Maven构建的项目,项目模块之间有依赖关系,我需要用到一个本地的jar包,而该jar包不能通过配置pom.xml文件从远程仓库自动下载,于是我直接导入该jar包到其中一个项目,不通过p ...

  10. C语言中typedef用法

    C语言中typedef用法 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等) ...