<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<title>insert title here</title>
<script type="text/網頁特效">
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);
}
</script>
</head>
<body>
<form method="post" action='register.php' enctype="multipart/form-data" onsubmit='return checkform(this)'>
<table>
<tr>
<td>使用者名稱:</td>
<td><input type='text' name='username' onblur='checkusername(this)'></td>
<td id='pmt_username'></td>
</tr>
<tr>
<td>密碼:</td>
<td><input type='password' name='pwd'></td>
<td id='pmt_pwd'></td>
</tr>
<tr>
<td>重複密碼:</td>
<td><input type='password' name='pwd2'></td>
<td></td>
</tr>
<tr>
<td>姓名:</td>
<td><input type='text' name='name'></td>
<td></td>
</tr>
<tr>
<td>性別:</td>
<td>
<input id='sex_m' checked type='radio' name='sex' value='男'><label for='sex_m'> 男 </label>
<label><input type='radio' name='sex' value='女'>女</label>
</td>
<td></td>
</tr>
<tr>
<td>年齡:</td>
<td><input type='text' name='age'></td>
<td id='pmt_age'></td>
</tr>
<tr>
<td>手機:</td>
<td><input type='text' name='mobile'></td>
<td></td>
</tr>
<tr>
<td>通訊地址:</td>
<td><input type='text' name='address'></td>
<td></td>
</tr>
<tr>
<td>郵件地址:</td>
<td><input type='text' name='email'></td>
<td></td>
</tr>
<tr>
<td>使用者照片:</td>
<td><input type='file' name='photo'></td>
<td></td>
</tr>
<tr>
<td>出生日期:</td>
<td><input type='text' name='birthday'></td>
<td></td>
</tr>
<tr>
<td>驗證碼:</td>
<td><input type='text' name='verifycode' onblur='checkcode(this)'><img src='verifycode.php'></td>
<td id='code'></td>
</tr>
<tr>
<td colspan='3'><input type='submit' value='註冊'> <input type='reset' value='重設'></td>
</tr>
</table>
</form>
</body>
</html>
checkusername.php檔案
<?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驗證碼程式
<?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 檢測使用者輸入的驗證碼是否一致
<?php
session_start();
$code = $_get['code'];
echo strtoupper($code) == $_session['verifycode'] ? '驗證碼正確' : '驗證碼錯誤';
?>
register.php註冊處理常式
<?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 '
<table>
<tr>
<td>使用者名稱</td>
<td>姓名</td>
<td>性別</td>
<td>年齡</td>
<td>手機</td>
<td>通訊地址</td>
<td>郵件地址</td>
<td>出生日期</td>
<!-- <td>照片</td> -->
</tr>
';
while($row = mysql_fetch_assoc($res)){
$photo = $row['photo'] ? "<img src='./upload/{$row['photo']}'>" : '';
echo "
<tr>
<td>{$row['username']}</td>
<td>{$row['name']}</td>
<td>{$row['sex']}</td>
<td>{$row['age']}</td>
<td>{$row['mobile']}</td>
<td>{$row['address']}</td>
<td>{$row['email']}</td>
<td>{$row['birthday']}</td>
<!-- <td>$photo</td> -->
</tr>
";
}
echo '</table>';
function errormsg($str){
die('<script type="text/javascript">alert("' . $str . '");</script>');
}
?>
最簡單資料庫結構
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.111cn.net/down/code/php/qitayuanma/2010/1220/22331.html