กรุณากรอกข้อความในกล่องข้อความ PHP ajax framework xajax บทนำและการทดลองใช้
1. การเปรียบเทียบ xajax และกรอบ ajax อื่นๆ
ฟังก์ชัน xajax นั้นเรียบง่ายมาก แต่มีความยืดหยุ่นมาก! ~มันไม่เหมือนกับเฟรมเวิร์กขนาดใหญ่อื่นๆ ฟังก์ชั่นของมันทรงพลังจริงๆ แต่ความเร็วในการดำเนินการไม่สามารถเสริมได้ - แม้ว่าจะมีฟังก์ชั่นมากมาย แต่ก็ไม่ยืดหยุ่นเพียงพอ มี API มากมายที่การเรียนรู้ก็เหมือนกับการเรียนรู้ภาษาใหม่
2. ความรู้เบื้องต้นเกี่ยวกับฟังก์ชัน xajax
ฟังก์ชันของ xajax ค่อนข้างเรียบง่าย แต่เนื่องจากความเรียบง่าย จึงมีความยืดหยุ่น ในเวลาเดียวกัน ผู้ใช้จำเป็นต้องมีความเข้าใจเกี่ยวกับสคริปต์ไคลเอ็นต์javascript/vbs บ้าง เพราะฟังก์ชั่นของมันค่อนข้างมีชีวิตชีวา อาจกล่าวได้ว่าไม่มีอะไรสามารถทำได้โดยใช้ xajax แต่ทุกสิ่งสามารถทำได้ด้วย js/vbs
Xajax จะใช้คลาส xajaxResponse เป็นหลัก ซึ่งมีวิธีการบางอย่าง เช่น:
1. เพิ่มการแจ้งเตือน($sMsg)
ป๊อปอัปคำเตือน
2. addsscript($sJS)
ดำเนินการบางส่วนของ js
3. $objResponse->addAssign("", "" ")
แนบค่าให้กับองค์ประกอบบนเพจ หรือแก้ไขคุณสมบัติ ฯลฯ - - -
ดังนั้น xajax ยังไม่ตาย มันไม่สามารถสร้างฟังก์ชัน XXX XXX ได้ แต่สามารถควบคุม js/vbs ของไคลเอ็นต์ได้อย่างยืดหยุ่นเพื่อให้ได้ผลลัพธ์ที่เราต้องการบรรลุ
3. การติดตั้งและการกำหนดค่า Xajax ไม่จำเป็นต้องติดตั้งและกำหนดค่าพิเศษ เพียงดาวน์โหลดไฟล์แพ็คเกจและแตกไฟล์ไปยังไดเร็กทอรีเว็บไซต์:
http://www.xajaxproject.org/
3. ใช้ xajax เพื่อลงทะเบียนสมาชิกและเข้าสู่ระบบ
1. ฐานข้อมูลใช้ mysql5.0 ชื่อฐานข้อมูลคือ zl ชื่อตารางคือโครงสร้างตาราง zl_user
รหัส int(11) เพิ่มอัตโนมัติ
zl_user วาร์ชาร์ (50)
zl_pwd วาร์ชาร์ (50)
อีเมล varchar(50)
2. ไฟล์ลงทะเบียน reg.php (พร้อมคำแนะนำ)
<?php
need_once("inc/xajax.inc.php");
//หากต้องการใช้ xajax คุณต้องแนะนำ xajax.inc.php ก่อน
$xajax = xajax ใหม่("inc/signup.php");
//สร้างวัตถุ xajax สำหรับ singup.php
$xajax->registerFunction("processForm");
//ใช้ฟังก์ชัน processForm ใน singup.php
-
<หัว>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<link rel="stylesheet" href=" http://blogbeta.blueidea.com/css/style.css " _fcksavedurl="" http://blogbeta.blueidea.com/css/style.css "" type=" ข้อความ/css">
<title>เอกสารที่ไม่มีชื่อ</title>
<?php $xajax->printJavascript('inc/'); ?>
<scrīpt type="text/javascript">
ฟังก์ชั่น sendSignup()
-
xajax.$('submitButton').disabled=true;
xajax.$('submitButton').value=" http://blogbeta.blueidea.com/wait ...";
//แก้ไขแอตทริบิวต์ด้วย ID sendButton
xajax_processForm(xajax.getFormValues("แบบฟอร์มลงทะเบียน"));
//ในที่นี้ xajax_ ตามด้วยฟังก์ชันที่จะใช้ นี่คือ processForm ตามด้วยชุดของรายการฟอร์ม signupForm
กลับเท็จ;
-
</สคริปต์>
</หัว>
<body><form id="signupForm" action="javascrīpt:void(null);" ōnSubmit="submitSignup();">
<div id="main">
<div id="m1">การลงทะเบียนผู้ใช้</div>
<div id="formDiv">
<table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td align="ขวา"> </td>
<td> </td>
</tr>
<tr>
<td width="31%" align="right">ชื่อผู้ใช้:</td>
<td width="69%"><input name="usr" type="text" id="usr" />
*</td>
</tr>
<tr>
<td align="right">รหัสผ่าน:</td>
<td><input name="pwd" type="password" id="pwd" />
*</td>
</tr>
<tr>
<td align="right">รหัสผ่าน:</td>
<td><ชื่ออินพุต = "pwd2" type = "รหัสผ่าน" id = "pwd2" />
*</td>
</tr>
<tr>
<td align="right">อีเมล:</td>
<td><input name="email" type="text" id="email" />
* สามารถใช้เพื่อดึงรหัสผ่าน</td>
</tr>
<tr align="center">
<td colspan="2"><ประเภทอินพุต = "ส่ง" ชื่อ = "submitButton" ค่า = "ส่ง" class = "ปุ่ม" />
<input type="reset" name="Submit2" value="Reset" class="button" /></td>
</tr>
</ตาราง>
</div>
</div>
</แบบฟอร์ม>
</ร่างกาย>
</html>
หลังจากคลิกส่งแล้ว ให้รันฟังก์ชัน processForm 3 ใน singup.php
, inc/singup.php
<?php
กำหนด ('XAJAX_DEFAULT_CHAR_ENCODING', 'gb2312' );
//หมายเหตุ ที่นี่ต้องตั้งค่า gb2312 ไม่เช่นนั้นภาษาจีนจะอ่านไม่ออก
need_once("xajax.inc.php");
need_once("function.php");
$xajax = xajax ใหม่();
$xajax->registerFunction("processForm");
//เหมือนกับ
ฟังก์ชันไฟล์ reg.php processForm($aFormValues)
-
$objResponse = xajaxResponse ใหม่();
need_once("conn.php");
$usr=$aFormValues['usr'];
$email=$aFormValues['อีเมล'];
$pwd=$aFormValues['pwd'];
$pw=Md5($pwd);
$errmsg="";
//อักขระที่ผิดกฎหมายที่ต้องกรอง
$ArrFiltrate=array("'",";","union");
foreach($aFormValues as $key=>$value){
ถ้า (FunStringExist($value,$ArrFiltrate)){
$objResponse->addAlert("ข้อมูลที่กรอกมีอักขระที่ไม่ถูกต้อง"' ; union!"");
$objResponse->addAssign("ปุ่มส่ง", "ค่า", "ดำเนินการต่อ");
$objResponse->addAssign("submitButton","disabled",false);
ส่งคืน $objResponse;
-
-
ถ้า (ตัดแต่ง($usr) == "")
-
$errmsg.="กรุณากรอกชื่อผู้ใช้ของคุณ!n";
-
ถ้า (ตัดแต่ง($pwd) == "")
-
$errmsg.="กรุณาใส่รหัสผ่านของคุณ!n";
-
ถ้า ($pwd != $aFormValues['pwd2'])
-
$errmsg.="รหัสผ่านที่ป้อนสองครั้งไม่สอดคล้องกัน!n";
-
ถ้า (!CheckEmailAddr($อีเมล))
-
$errmsg.="ที่อยู่อีเมลไม่ถูกต้อง!n";
-
$sql="select * from zl_usr โดยที่ zl_usr='$usr'";
$result=mysql_query($sql,$db);
if($myrow=mysql_fetch_array($result)){
$errmsg.="มีชื่อผู้ใช้อยู่แล้ว!n";
-
ถ้า ($errmsg=="")
-
$sForm = "ลงทะเบียนสำเร็จ<br>ชื่อผู้ใช้:".$usr."<br>email:".$email"";
$sql="insert into zl_usr(zl_usr,zl_pwd,email) ค่า('$usr','$pw','$email')";
$result=mysql_query($sql,$db);
$objResponse->addAssign("formDiv","innerHTML",$sForm);
-
อื่น
-
$objResponse->addAlert($errmsg);
//ป๊อปอัปข้อความแสดงข้อผิดพลาด
$objResponse->addAssign("ปุ่มส่ง", "ค่า", "ดำเนินการต่อ");
//แก้ไขค่าของ sendButton เพื่อดำเนินการต่อ
$objResponse->addAssign("submitButton","disabled",false);
//แก้ไขคุณสมบัติของปุ่ม sendButton
-
ส่งคืน $objResponse;
-
$xajax->processRequests();
?>
ความถูกต้องของข้อมูลจะถูกตัดสินในไฟล์นี้ รวมถึง: ชื่อผู้ใช้ได้รับการลงทะเบียนหรือไม่, มีอักขระที่ผิดกฎหมายในข้อมูลหรือไม่, ที่อยู่อีเมลนั้นถูกต้องหรือไม่, รหัสผ่านที่ป้อนสองครั้งมีความสอดคล้องกันหรือไม่ และหากมี ไม่มีข้อผิดพลาด จะถูกบันทึกลงในฐานข้อมูล และ
$objResponse->addAssign("formDiv","innerHTML",$sForm);
ใส่โค้ดอีกครั้งใน formDiv โดยมีเนื้อหา $sForm
$sForm = "การลงทะเบียนสำเร็จ<br>ชื่อผู้ใช้:".$usr."<br>email:".$email"";
ถ้ามีข้อความแสดงข้อผิดพลาด
$objResponse->addAlert($errmsg);
//ป๊อปอัปข้อความแสดงข้อผิดพลาด
$objResponse->addAssign("ปุ่มส่ง", "ค่า", "ดำเนินการต่อ");
$objResponse->addAssign("submitButton","disabled",false);
//แก้ไขคุณสมบัติของ sendButton
3. ไฟล์ล็อกอิน login.php
<?php
need_once("inc/xajax.inc.php");
$xajax = xajax ใหม่("inc/login.php");
$xajax->registerFunction("processForm");
-
<หัว>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<link rel="stylesheet" href=" http://blogbeta.blueidea.com/css/style.css " _fcksavedurl="" http://blogbeta.blueidea.com/css/style.css "" type=" ข้อความ/css">
<title>เอกสารที่ไม่มีชื่อ</title>
<?php $xajax->printJavascript('inc/'); ?>
<scrīpt type="text/javascript">
ฟังก์ชั่น sendSignup()
-
xajax.$('submitButton').disabled=true;
xajax.$('submitButton').value=" http://blogbeta.blueidea.com/wait ...";
xajax_processForm(xajax.getFormValues("แบบฟอร์มลงทะเบียน"));
กลับเท็จ;
-
</สคริปต์>
</หัว>
<body><form id="signupForm" action="javascrīpt:void(null);" ōnSubmit="submitSignup();">
<div id="main">
<div id="m1">เข้าสู่ระบบของผู้ใช้</div>
<div id="formDiv">
<table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td align="ขวา"> </td>
<td> </td>
</tr>
<tr>
<td width="31%" align="right">ชื่อผู้ใช้:</td>
<td width="69%"><input name="usr" type="text" id="usr" />
*</td>
</tr>
<tr>
<td align="right">รหัสผ่าน:</td>
<td><input name="pwd" type="password" id="pwd" />
*</td>
</tr>
<tr align="center">
<td colspan="2"><ประเภทอินพุต = "ส่ง" ชื่อ = "submitButton" ค่า = "ส่ง" class = "ปุ่ม" />
<input type="reset" name="Submit2" value="Reset" class="button" /></td>
</tr>
</ตาราง>
</div>
</div>
</แบบฟอร์ม>
</ร่างกาย>
</html>
4. ไฟล์ประมวลผลการเข้าสู่ระบบ inc/login.php
<?php
กำหนด ('XAJAX_DEFAULT_CHAR_ENCODING', 'gb2312' );
need_once("xajax.inc.php");
need_once("function.php");
$xajax = xajax ใหม่();
$xajax->registerFunction("processForm");
ฟังก์ชั่น processForm($aFormValues)
-
$objResponse = xajaxResponse ใหม่();
need_once("conn.php");
$usr=$aFormValues['usr'];
$email=$aFormValues['อีเมล'];
$pwd=$aFormValues['pwd'];
$pw=Md5($pwd);
$errmsg="";
//อักขระที่ผิดกฎหมายที่ต้องกรอง
$ArrFiltrate=array("'",";","union");
foreach($aFormValues as $key=>$value){
ถ้า (FunStringExist($value,$ArrFiltrate)){
$objResponse->addAlert("ข้อมูลที่กรอกมีอักขระที่ไม่ถูกต้อง"' ; union!"");
$objResponse->addAssign("ปุ่มส่ง", "ค่า", "ดำเนินการต่อ");
$objResponse->addAssign("submitButton","disabled",false);
ส่งคืน $objResponse;
-
-
ถ้า (ตัดแต่ง($usr) == "")
-
$errmsg.="กรุณากรอกชื่อผู้ใช้ของคุณ!n";
-
ถ้า (ตัดแต่ง($pwd) == "")
-
$errmsg.="กรุณาใส่รหัสผ่านของคุณ!n";
-
$sql="select * from zl_usr โดยที่ zl_usr='$usr' และ zl_pwd='$pw'";
$result=mysql_query($sql,$db);
if(!$myrow=mysql_fetch_array($result)){
$errmsg.="ไม่มีชื่อผู้ใช้ หรือรหัสผ่านไม่ถูกต้อง!n";
-
ถ้า ($errmsg=="")
-
$sForm = "เข้าสู่ระบบสำเร็จ";
$objResponse->addAssign("formDiv","innerHTML",$sForm);
-
อื่น
-
$objResponse->addAlert($errmsg);
$objResponse->addAssign("ปุ่มส่ง", "ค่า", "ดำเนินการต่อ");
$objResponse->addAssign("submitButton","disabled",false);
-
ส่งคืน $objResponse;
-
$xajax->processRequests();
?>
หลักการเข้าสู่ระบบและการลงทะเบียนคล้ายกันจึงไม่ไร้สาระอีกต่อไป :)
นอกจากนี้ต่อไปนี้เป็นโค้ดไฟล์สองไฟล์ที่ใช้ conn.php function.php
con.php
<?php
$database="zl";//ชื่อฐานข้อมูล MYSQL
$db = mysql_connect("127.0.0.1", "root", "123456");//ชื่อผู้ใช้และรหัสผ่านฐานข้อมูล MYSQL
mysql_select_db($ฐานข้อมูล,$db);
-
function.php
<?php
ฟังก์ชั่น CheckEmailAddr($C_mailaddr)
-
ถ้า (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+ )*$",
$C_mailaddr))
-
กลับเท็จ;
-
กลับเป็นจริง;
-
//ไม่ว่าจะมีค่าอยู่ในอาร์เรย์หรือไม่
ฟังก์ชั่น FunStringExist($StrFiltrate,$ArrFiltrate){
foreach ($ArrFiltrate เป็น $key=>$value){
ถ้า (เอเรกี($value,$StrFiltrate)){
กลับเป็นจริง;
-
-
กลับเท็จ;
-
-