最近用php+js+mysql做了一個仿webQQ的課程設計,收獲很多,現在將關鍵的技術總結一下,供大家學習交流。
<1>郵箱驗證
用戶在注冊的時候,會在文本框裡輸入郵箱,這個時候通過文本框的onblur和onchange事件用Ajax無刷新技術來判斷用戶輸入的郵箱是否合法以及是否與已注冊的郵箱沖突。
Js代碼
[html]
function checkEmail(Email)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
if(xmlhttp.overrideMimeType)
{//設置MIME類別
xmlhttp.overrideMimeType("text/xml");
}
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var url="checkEmail.php?email="+document.getElementById("email").value; //轉到checkEmail.php進行驗證
xmlhttp.open("GET",url,true);
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("error1").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
function checkEmail(Email)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
if(xmlhttp.overrideMimeType)
{//設置MIME類別
xmlhttp.overrideMimeType("text/xml");
}
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var url="checkEmail.php?email="+document.getElementById("email").value; //轉到checkEmail.php進行驗證
xmlhttp.open("GET",url,true);
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("error1").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
PHP代碼
[php]
<?php
header('Content-Type:text/html;charset=GB2312'); //編碼方式設置
include("conn.php");
$email=$_GET["email"];
$len=strlen($email);
if($email==null)
{
echo "<font color=red size=2px>*郵箱不能為空!</font>";
}
else
{
if($len>50)
{
echo "<font color=red size=2px>*郵箱不要超過50個字符!</font>";
}
else
{
if(eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$email)) //在php中用正則表達式驗證郵箱
{
$sql="select * from user where email='$email'"; //連接數據庫進行查詢看郵箱是否被用
$result = mysql_query($sql);
$num=mysql_num_rows($result);
if($num>0)
{
echo "<font color=red size=2px>*該郵箱已被用!</font>";
}
else
{
echo "<font color=green size=2px>*郵箱可用!</font>";
}
}
else
{
echo "<font color=red size=2px>*該郵箱不可用!</font>";
}
}
}
?>
<?php
header('Content-Type:text/html;charset=GB2312'); //編碼方式設置
include("conn.php");
$email=$_GET["email"];
$len=strlen($email);
if($email==null)
{
echo "<font color=red size=2px>*郵箱不能為空!</font>";
}
else
{
if($len>50)
{
echo "<font color=red size=2px>*郵箱不要超過50個字符!</font>";
}
else
{
if(eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$email)) //在php中用正則表達式驗證郵箱
{
$sql="select * from user where email='$email'"; //連接數據庫進行查詢看郵箱是否被用
$result = mysql_query($sql);
$num=mysql_num_rows($result);
if($num>0)
{
echo "<font color=red size=2px>*該郵箱已被用!</font>";
}
else
{
echo "<font color=green size=2px>*郵箱可用!</font>";
}
}
else
{
echo "<font color=red size=2px>*該郵箱不可用!</font>";
}
}
}
?>
通過對郵箱驗證的學習,我想其他的驗證應該很簡單了吧!(未完待續)
摘自 wyzhangchengjin123