PHP ajax 프레임워크 xajax 소개 및 체험판
1. xajax와 다른 ajax 프레임워크 비교
xajax 함수는 매우 간단하지만 매우 유연합니다! ~다른 대형 프레임워크와는 달리 기능은 강력하지만 실행 속도는 칭찬할 수 없습니다. . 기능은 많지만 유연성이 부족합니다. API가 너무 많아서 이를 배우는 것은 새로운 언어를 배우는 것과 같습니다.
2. xajax 함수 소개
xajax의 기능은 상대적으로 단순하지만 단순성으로 인해 유연합니다. 동시에 이를 위해서는 사용자가 javascrīpt/vbs 클라이언트 스크립트에 대해 어느 정도 이해하고 있어야 합니다. 그 기능이 상대적으로 활발하기 때문입니다. 단순히 xajax를 사용하면 아무것도 할 수 없지만 js/vbs를 사용하면 모든 것이 가능하다고 할 수 있습니다.
Xajax는 주로 다음과 같은 몇 가지 메소드를 제공하는 xajaxResponse 클래스를 사용합니다.
1. 경고 추가($sMsg)
팝업 경고
2. 추가스크립트($sJS)
특정 js 조각 실행
3. $objResponse->addAssign("","","")
페이지의 요소에 값을 추가하거나 속성 등을 수정합니다. . . .
따라서 xajax는 죽은 것이 아니며 XXX XXX 기능을 만들 수는 없지만 우리가 달성하려는 효과를 달성하기 위해 클라이언트의 js/vbs를 유연하게 제어할 수 있습니다.
3. Xajax 설치 및 구성에는 특별한 설치 및 구성이 필요하지 않습니다. 파일 패키지를 다운로드하고 웹 사이트 다운로드 주소에 압축을 풀면 됩니다.
http://www.xajaxproject.org/
3. 회원가입 및 로그인은 xajax를 이용하세요.
1. 데이터베이스는 mysql5.0을 사용하고, 데이터베이스 이름은 zl, 테이블 이름은 zl_user 테이블 구조입니다.
ID int(11) auto_increment
zl_user varchar(50)
zl_pwd varchar(50)
email varchar(50)
2. reg.php 등록 파일(지침 포함)
<?php
require_once("inc/xajax.inc.php");
//xajax를 사용하려면 먼저 xajax.inc.php를 소개해야 합니다.
$xajax = new xajax("inc/signup.php");
//singup.php에 대한 xajax 객체 생성
$xajax->registerFunction("processForm");
//singup.php의 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->printJavascrīpt('inc/') ?>
<scrīpt type="텍스트/javascrīpt">
함수 submitSignup()
{
xajax.$('submitButton').disabled=true;
xajax.$('submitButton').value=" http://blogbeta.blueidea.com/wait ...";
//ID submitButton으로 속성 수정
xajax_processForm(xajax.getFormValues("signupForm"));
//여기서 xajax_ 뒤에는 사용할 함수가 옵니다. 여기에는 processForm이 있고 그 뒤에 signupForm 양식 항목 모음이 옵니다.
거짓을 반환;
}
</script>
</head>
<body><form id="signupForm" action="javascrīpt:void(null);" ōnSubmit="submitSignup();">
<div id="메인">
<div id="m1">사용자 등록</div>
<div id="formDiv">
<table width="100%" border="0" cellpacing="0" cellpadding="5">
<tr>
<td 정렬="오른쪽"> </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><입력 이름="pwd" type="password" id="pwd" />
*</td>
</tr>
<tr>
<td align="right">비밀번호:</td>
<td><입력 이름="pwd2" type="password" id="pwd2" />
*</td>
</tr>
<tr>
<td align="right">이메일:</td>
<td><input name="email" type="text" id="email" />
* 비밀번호를 검색하는 데 사용할 수 있습니다</td>
</tr>
<tr 정렬="가운데">
<td colspan="2"><input type="submit" name="submitButton" value="Submit" class="button" />
<input type="reset" name="Submit2" value="Reset" class="button" /></td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
제출을 클릭한 후 singup.php
, inc/singup.php
<?php
에서 processForm 함수 3을 실행합니다.
정의('XAJAX_DEFAULT_CHAR_ENCODING', 'gb2312' );
//여기서 gb2312를 설정해야 합니다. 그렇지 않으면 중국어가 왜곡됩니다.
require_once("xajax.inc.php");
require_once("function.php");
$xajax = 새로운 xajax();
$xajax->registerFunction("processForm");
//reg.php 파일
함수 processForm($aFormValues)
과 동일
{
$objResponse = 새로운 xajaxResponse();
require_once("conn.php");
$usr=$aFormValues['usr'];
$email=$aFormValues['이메일'];
$pwd=$aFormValues['pwd'];
$pw=Md5($pwd);
$errmsg="";
//필터링할 잘못된 문자
$ArrFiltrate=array("'",";","union");
foreach($aFormValues $key=>$value){
if (FunStringExist($value,$ArrFiltrate)){
$objResponse->addAlert("입력한 정보에 잘못된 문자가 포함되어 있습니다"' ; Union!"");
$objResponse->addAssign("submitButton","value","continue");
$objResponse->addAssign("submitButton","disabled",false);
$objResponse를 반환합니다.
}
}
if (trim($usr) == "")
{
$errmsg.="사용자 이름을 입력하세요!n";
}
if (trim($pwd) == "")
{
$errmsg.="비밀번호를 입력하세요!n";
}
if ($pwd != $aFormValues['pwd2'])
{
$errmsg.="두 번 입력한 비밀번호가 일치하지 않습니다!n";
}
if (!CheckEmailAddr($email))
{
$errmsg.="이메일 주소가 정확하지 않습니다!n";
}
$sql="zl_usr='$usr'인 zl_usr에서 *를 선택하세요";
$result=mysql_query($sql,$db);
if($myrow=mysql_fetch_array($result)){
$errmsg.="사용자 이름이 이미 존재합니다!n";
}
if ($errmsg=="")
{
$sForm = "등록 성공<br>사용자 이름:".$usr."<br>이메일:".$email."";
$sql="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("submitButton","value","continue");
//계속하려면 submitButton 값을 수정하세요.
$objResponse->addAssign("submitButton","disabled",false);
//submitButton 버튼의 속성을 수정합니다.
}
$objResponse를 반환합니다.
}
$xajax->processRequests();
?>
이 파일에서는 사용자 이름이 등록되었는지, 정보에 잘못된 문자가 있는지, 이메일 주소가 올바른지, 두 번 입력한 비밀번호가 일치하는지, 오류가 없으면 데이터베이스에 입력됩니다.
$objResponse->addAssign("formDiv","innerHTML",$sForm);
$sForm 콘텐츠를 사용하여 formDiv에 코드를 다시 삽입하세요.
$sForm = "등록 성공<br>사용자 이름:".$usr."<br>이메일:".$email.""
오류 메시지가 있는 경우
$objResponse->addAlert($errmsg);
//오류 메시지 팝업
$objResponse->addAssign("submitButton","value","continue");
$objResponse->addAssign("submitButton","disabled",false);
//submitButton 속성 수정
3. login.php 로그인 파일
<?php
require_once("inc/xajax.inc.php");
$xajax = new 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->printJavascrīpt('inc/') ?>
<scrīpt type="텍스트/javascrīpt">
함수 submitSignup()
{
xajax.$('submitButton').disabled=true;
xajax.$('submitButton').value=" http://blogbeta.blueidea.com/wait ...";
xajax_processForm(xajax.getFormValues("signupForm"));
거짓을 반환;
}
</script>
</head>
<body><form id="signupForm" action="javascrīpt:void(null);" ōnSubmit="submitSignup();">
<div id="메인">
<div id="m1">사용자 로그인</div>
<div id="formDiv">
<table width="100%" border="0" cellpacing="0" cellpadding="5">
<tr>
<td 정렬="오른쪽"> </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><입력 이름="pwd" type="password" id="pwd" />
*</td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" name="submitButton" value="Submit" class="button" />
<input type="reset" name="Submit2" value="Reset" class="button" /></td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
4. inc/login.php 로그인 처리 파일
<?php
정의('XAJAX_DEFAULT_CHAR_ENCODING', 'gb2312' );
require_once("xajax.inc.php");
require_once("function.php");
$xajax = 새로운 xajax();
$xajax->registerFunction("processForm");
함수 processForm($aFormValues)
{
$objResponse = 새로운 xajaxResponse();
require_once("conn.php");
$usr=$aFormValues['usr'];
$email=$aFormValues['이메일'];
$pwd=$aFormValues['pwd'];
$pw=Md5($pwd);
$errmsg="";
//필터링할 잘못된 문자
$ArrFiltrate=array("'",";","union");
foreach($aFormValues $key=>$value){
if (FunStringExist($value,$ArrFiltrate)){
$objResponse->addAlert("입력한 정보에 잘못된 문자가 포함되어 있습니다"' ; Union!"");
$objResponse->addAssign("submitButton","value","continue");
$objResponse->addAssign("submitButton","disabled",false);
$objResponse를 반환합니다.
}
}
if (trim($usr) == "")
{
$errmsg.="사용자 이름을 입력하세요!n";
}
if (trim($pwd) == "")
{
$errmsg.="비밀번호를 입력하세요!n";
}
$sql="select * zl_usr에서 zl_usr='$usr' 및 zl_pwd='$pw'";
$result=mysql_query($sql,$db);
if(!$myrow=mysql_fetch_array($result)){
$errmsg.="사용자 이름이 존재하지 않거나, 비밀번호가 틀렸습니다!n";
}
if ($errmsg=="")
{
$sForm = "로그인 성공";
$objResponse->addAssign("formDiv","innerHTML",$sForm);
}
또 다른
{
$objResponse->addAlert($errmsg);
$objResponse->addAssign("submitButton","value","continue");
$objResponse->addAssign("submitButton","disabled",false);
}
$objResponse를 반환합니다.
}
$xajax->processRequests();
?>
로그인과 회원가입의 원리가 유사하니 더 이상 헛소리는 하지 마세요 :)
추가적으로 conn.php function.php 에서 사용한 파일 코드 2개는 다음과 같습니다.
conn.php
<?php
$database="zl";//MYSQL 데이터베이스 이름
$db = mysql_connect("127.0.0.1", "root","123456");//MYSQL 데이터베이스 사용자 이름 및 비밀번호
mysql_select_db($database,$db);
?>
function.php
<?php
기능 CheckEmailAddr($C_mailaddr)
{
if (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+ )*$",
$C_mailaddr))
{
거짓을 반환;
}
사실을 반환;
}
//배열에 값이 있는지 여부
함수 FunStringExist($StrFiltrate,$ArrFiltrate){
foreach($ArrFiltrate를 $key=>$value로){
if (eregi($value,$StrFiltrate)){
사실을 반환;
}
}
거짓을 반환;
}
?>