ajas php 验证码_完整php ajax用户注册与用户名验证实例

这个博客展示了如何使用PHP和JavaScript实现网页表单的验证,包括用户名可用性检查、手机号码验证、验证码校验等。在注册过程中,还涉及到文件上传、数据库操作以及错误处理。代码示例详细解释了每个验证步骤和数据库交互过程。
摘要由CSDN通过智能技术生成
insert title here

function checkusername(input){

var name = input.value;

var url = 'checkusername.php教程?username=' name;

var xmlhttp = getxmlhttpobject();

xmlhttp.onreadystatechange = function(){

if (xmlhttp.readystate==4){

$$("pmt_username").innerhtml = xmlhttp.responsetext;

}

}

xmlhttp.open("get",url,true);

xmlhttp.send(null);

}

function getxmlhttpobject(){

var xmlhttp=null;

try{

// firefox, opera 8.0 , safari

xmlhttp=new xmlhttprequest();

}catch (e){

// internet explorer

try{

xmlhttp=new activexobject("msxml2.xmlhttp");

}catch (e){

xmlhttp=new activexobject("microsoft.xmlhttp");

}

}

return xmlhttp;

}

function checkform(form){

try{

assertnonempty(form.username);

assertnonempty(form.pwd);

//  assertint(form.mobile);

} catch(e){

return false;

}

return true;

}

function assertnonempty(obj){

if(obj.value == ''){

var tds = gettdelems(obj);

var text = tds[0].innerhtml;

tds[1].innerhtml = text.slice(0,-1) '不能为空';

obj.focus();

obj.select();

throw new exception();

}

}

function assertint(obj){

var v = obj.value;

if(/d{11}/.test(v)){

alert('ok');

} else {

alert('error');

}

if(number(v) != v){

var tds = gettdelems(obj);

var text = tds[0].innerhtml;

tds[1].innerhtml = text.slice(0,-1) '应该是数值';

obj.focus();

obj.select();

throw new exception();

}

}

window.onload = function(){

// alert($$('username').type);

// $$('abc').onkeydown = mobilekeydown;

}

function gettdelems(obj){

var tr = obj.parentnode.parentnode;

var tds = tr.getelementsbytagname('td');

return [tds[0],tds[2]];

}

function mobilekeydown(e){

e = e || event;

return e.keycode >47 && e.keycode < 59;

}

function $$(id){

return document.getelementbyid(id);

}

function checkcode(input){

var name = input.value;

var url = 'checkcode.php?code=' name;

var xmlhttp = getxmlhttpobject();

xmlhttp.onreadystatechange = function(){

if (xmlhttp.readystate==4){

$$("code").innerhtml = xmlhttp.responsetext;

}

}

xmlhttp.open("get",url,true);

xmlhttp.send(null);

}

用户名:
密码:
重复密码:
姓名:
性别:

年龄:
手机:
通信地址:
邮件地址:
用户照片:
出生日期:
验证码:

checkusername.php文件

$username = $_get['username'];

mysql教程_connect('127.0.0.1', 'root', '') or die('could not connect: ' . mysql_error());

mysql_select_db('test');

//拼接sql语句时必须将用户输入的值做处理,替换特殊字符,用引号包含

$username = htmlentities($username,ent_quotes);

$sql = "select count(*) from user where username ='{$username}'";

$result = mysql_query($sql);

if($row = mysql_fetch_array($result, mysql_num)){

$cnt = $row[0];

if($cnt == 0) {

echo '用户名未被使用';

} else {

echo '用户名已被使用,请改换用户名';

}

}

?>

verifycode.php验证码程序

session_start();

$rnd = array_merge(range(0,9),range('a','z'));

shuffle($rnd);

$code = implode('',$rnd);

$code = substr($code,0,4);

$_session['verifycode'] = $code;

header("content-type: image/png");

$im = @imagecreate(50, 25) or die("cannot initialize new gd image stream");

$background_color = imagecolorallocate($im, 255, 255, 255);

$text_color = imagecolorallocate($im, 233, 14, 91);

imagestring($im, 5, 5, 5,  $code, $text_color);

imagepng($im);

imagedestroy($im);

?>

checkcode.php 检测用户输入的验证码是否一致

session_start();

$code = $_get['code'];

echo strtoupper($code) == $_session['verifycode'] ? '验证码正确' : '验证码错误';

?>

register.php注册处理程序

session_start();

$filename = '';

if(isset($_files['photo'])){

$uploaddir = dirname(__file__) . directory_separator . 'upload';

$originfilename = $_files['photo']['name'];

$extname = strtolower(substr($originfilename,strrpos($originfilename,'.') 1));

$filename = time() . '.' . $extname;

$validext = array('jpg','jpeg','gif','png');

if(!in_array($extname,$validext)){

errormsg("错误的文件类型");

}

if($_files['photo']['size'] > 100*1024){

errormsg("文件太大,超过了100k");

}

$uploadfile = $uploaddir . directory_separator . $filename;

if(!move_uploaded_file($_files['photo']['tmp_name'], $uploadfile)) {

errormsg("照片上传失败");

}

}

$code = $_post['verifycode'];

if($code != $_session['verifycode']){

errormsg("验证码输入不正确");

}

mysql_connect('127.0.0.1', 'root', '');

mysql_select_db('test');

mysql_query('set names utf8');

$username = addslashes($_post['username']);

$pwd = md5($_post['pwd']);

$name = addslashes($_post['name']);

$sex = addslashes($_post['sex']);

$age = intval($_post['age']);

$mobile = addslashes($_post['mobile']);

$address = addslashes($_post['address']);

$email = addslashes($_post['email']);

$photo = $filename;

$birthday = addslashes($_post['birthday']);

$sql = "insert into user(username,pwd,name,sex,age,mobile,address,email,photo,birthday)

values('$username','$pwd','$name','$sex',$age,'$mobile','$address','$email','$photo','$birthday')";

if(!mysql_query($sql)){

errormsg('数据库教程写入不成功!');

}

$sql = 'select * from user';

$res = mysql_query($sql);

echo '

用户名姓名性别年龄手机通信地址邮件地址出生日期

';

while($row = mysql_fetch_assoc($res)){

 $photo = $row['photo'] ? "" : '';

echo "

{$row['username']}{$row['name']}{$row['sex']}{$row['age']}{$row['mobile']}{$row['address']}{$row['email']}{$row['birthday']}

";

}

echo '

';

function errormsg($str){

die('');

}

?>

最简单数据库结构

drop database if exists test;

create database test character set utf8 collate utf8_general_ci;

use test;

create table user(

username char(10) primary key

,pwd char(32) not null

,name char(10) not null

,sex char(1) not null

,mobile char(11)

,age smallint

,address varchar(50)

,email varchar(30)

,photo varchar(20)

,birthday date

);

http://down.jquerycn.cn/down/code/php/qitayuanma/2010/1220/22331.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值