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

前端页面

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. MySQL——DOS命令

    翻开之前的笔记发现有这么一篇,于是整理了一下发出来加深记忆并分享交流,欢迎纠错,谢谢!!! 1.启动MySQL服务: net start mysql; 2.停止MySQL服务: net stop my ...

  2. 我终于学会了使用python操作postgresql

    一 前言 这篇文章不仅适合pgsql,更适合mysql,思路都是一致的,如果读者学会使用psycopg2操作pgsql,那么使用PyMySQL 操作mysql也是很简单:本篇文章涵盖内容广泛,提供的操 ...

  3. scrapy在存储数据到json文件中时,中文变成为\u开头的字符串的处理方法

    在settings.py文件中添加 FEED_EXPORT_ENCODING = 'utf-8'

  4. 美食家App开发日记5

    今天将ListView控件用更强大的Recyclerview控件取代,最后调试了程序. 感觉Android编程难度实在是远远高于javaweb,初次接触,感觉有很多东西想实现,想得很容易,但是实现起来 ...

  5. 2019杭电多校赛第九场 Rikka with Mista

    Problem Description Rikka is a fervent fan of JoJo's Bizarre Adventure. As the last episode of Golde ...

  6. [计算几何+图论]doge

    题意 在平面直角坐标系上,你有一只doge在原点处.doge被绳子拴住了,绳子不会打结,没有弹性(但很柔软),并且长度为L.平面上有一些目标,因此你的doge会按照顺序去捡起它们,但是doge只能走直 ...

  7. Linux基础:简介安装、常用命令和JDK、Mysql、Tomcat的安装

    一.Linux的简介 1.Linux的概述 Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境.Linux是由Linus Torvalds(林纳斯 ...

  8. 一、Django学习之连接与建立数据库

    连接MySQL数据库 配置文件 找到DATABASES对应的设置,修改为MySQL的配置即可 DATABASES = { 'default': { 'ENGINE': 'django.db.backe ...

  9. pico g2 触摸板手柄射线检测---for unity

    1.pico g2手柄射线检测UI,需要在canvas添加Graphic Raycaster脚本和Pvr_Ui Canvas脚本. 2.删除掉原有的maincamera,将Pvr_unitySDK下h ...

  10. 透彻分析和解决一切javaWeb项目乱码问题

    前言 乱码是我们在程序开发中经常碰到且让人头疼的一件事,尤其是我们在做javaweb开发,如果我们没有清楚乱码产生的原理,碰到乱码问题了就容易摸不着头脑,无从下手. 乱码主要出现在两部分,如下: 第一 ...