テキストボックスにテキストを入力してください。 PHP ajax フレームワーク xajax の紹介と試用
1. xajax と他の ajax フレームワークの比較
xajax 関数は非常にシンプルですが、非常に柔軟です。 ~他の大きなフレームワークとは異なり、その機能は確かに強力ですが、その実行速度は褒められたものではありません。 。機能は豊富ですが、柔軟性が十分ではありません。 API は非常にたくさんあるので、それを学ぶことは新しい言語を学ぶことに似ています。
2. xajax 関数の概要
xajax の機能は比較的単純ですが、そのシンプルさゆえに柔軟性があります。同時に、これにはユーザーが javascript/vbs クライアント スクリプトについて一定の理解を持っていることも必要です。その機能が比較的活発だからです。 xajaxだけでは何もできないとも言えますが、js/vbsを使えば何でもできます。
Xajax は主に xajaxResponse クラスを使用し、次のようなメソッドを提供します。
1.addAlert($sMsg)
ポップアップ警告
2.スクリプトを追加($sJS)
特定のjsを実行する
3. $objResponse->addAssign("","","")
ページ上の要素に値を付加するか、そのプロパティなどを変更します。 。 。 。
したがって、xajax は死んだわけではなく、XXX XXX 関数を作成することはできませんが、クライアントの js/vbs を柔軟に制御して、達成したい効果を実現できます。
3. Xajax のインストールと構成には特別なインストールと構成は必要ありません。そのファイル パッケージをダウンロードし、Web サイトのダウンロード アドレスに解凍するだけです。
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("プロセスフォーム");
// 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->printJavascript('inc/') ?>
<script type="text/javascript">
関数 submitSignup()
{
xajax.$('submitButton').disabled=true;
xajax.$('submitButton').value=" http://blogbeta.blueidea.com/wait ...";
//ID の属性を変更する submitButton
xajax_processForm(xajax.getFormValues("signupForm"));
//ここでは、xajax_ の後に使用する関数が続きます。ここでは processForm があり、その後にsignupForm フォーム項目のコレクションが続きます。
false を返します。
}
</スクリプト>
</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 align="right"> </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><input name="pwd2" type="password" id="pwd2" />
*</td>
</tr>
<tr>
<td align="right">メールアドレス:</td>
<td><input name="電子メール" type="text" id="電子メール" />
* パスワードの取得に使用できます</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>
</テーブル>
</div>
</div>
</form>
</body>
</html>
、 inc/singup.php
の processForm 関数 3 を実行します
<?php
定義 ('XAJAX_DEFAULT_CHAR_ENCODING', 'gb2312' );
//ここで注意してください、gb2312 を設定する必要があります。そうしないと中国語が文字化けします。
require_once("xajax.inc.php");
require_once("function.php");
$xajax = 新しい xajax();
$xajax->registerFunction("プロセスフォーム");
//reg.php ファイル
関数と同じ processForm($aFormValues)
{
$objResponse = 新しい xajaxResponse();
require_once("conn.php");
$usr=$aFormValues['usr'];
$email=$aFormValues['email'];
$pwd=$aFormValues['pwd'];
$pw=MD5($pwd);
$errmsg="";
//フィルタ対象となる不正な文字
$ArrFiltrate=array("'",";","union");
foreach($aFormValues as $key=>$value){
if (FunStringExist($value,$ArrFiltrate)){
$objResponse->addAlert("入力された情報には不正な文字が含まれています"' ; Union!"");
$objResponse->addAssign("送信ボタン","値","続行");
$objResponse->addAssign("submitButton","無効",false);
$objResponse を返します。
}
}
if (trim($usr) == "")
{
$errmsg.="ユーザー名を入力してください!n";
}
if (trim($pwd) == "")
{
$errmsg.="パスワードを入力してください!n";
}
if ($pwd != $aFormValues['pwd2'])
{
$errmsg.="2 回入力したパスワードは矛盾しています!n";
}
if (!CheckEmailAddr($email))
{
$errmsg.="電子メール アドレスが間違っています!n";
}
$sql="select * from zl_usr where zl_usr='$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 の値を変更します
$objResponse->addAssign("submitButton","無効",false);
//submitButton ボタンのプロパティを変更します
}
$objResponse を返します。
}
$xajax->processRequests();
?>
このファイルでは、ユーザー名が登録されているか、情報に不正な文字がないか、メールアドレスが正しいか、2回入力したパスワードが一致しているか、などの情報の正当性が判断されます。エラーがなければデータベースに入力されます。
$objResponse->addAssign("formDiv","innerHTML",$sForm);
$sForm という内容のコードを formDiv に再挿入します。
$sForm = "登録が成功しました<br>ユーザー名:".$usr."<br>メール:".$email."";
エラー メッセージがある場合は、
$objResponse->addAlert($errmsg);
//エラーメッセージをポップアップ表示する
$objResponse->addAssign("送信ボタン","値","続行");
$objResponse->addAssign("submitButton","無効",false);
//submitButton 3.の属性を変更します
。login.php ログイン ファイル
<?php
require_once("inc/xajax.inc.php");
$xajax = new xajax("inc/login.php");
$xajax->registerFunction("プロセスフォーム");
?>
<頭>
<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/') ?>
<script type="text/javascript">
関数 submitSignup()
{
xajax.$('submitButton').disabled=true;
xajax.$('submitButton').value=" http://blogbeta.blueidea.com/wait ...";
xajax_processForm(xajax.getFormValues("signupForm"));
false を返します。
}
</スクリプト>
</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 align="right"> </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"><input type="submit" name="submitButton" value="Submit" class="button" />
<input type="reset" name="Submit2" value="Reset" class="button" /></td>
</tr>
</テーブル>
</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($aFormValues)
{
$objResponse = 新しい xajaxResponse();
require_once("conn.php");
$usr=$aFormValues['usr'];
$email=$aFormValues['email'];
$pwd=$aFormValues['pwd'];
$pw=MD5($pwd);
$errmsg="";
//フィルタ対象となる不正な文字
$ArrFiltrate=array("'",";","union");
foreach($aFormValues as $key=>$value){
if (FunStringExist($value,$ArrFiltrate)){
$objResponse->addAlert("入力された情報には不正な文字が含まれています"' ; Union!"");
$objResponse->addAssign("送信ボタン","値","続行");
$objResponse->addAssign("submitButton","無効",false);
$objResponse を返します。
}
}
if (trim($usr) == "")
{
$errmsg.="ユーザー名を入力してください!n";
}
if (trim($pwd) == "")
{
$errmsg.="パスワードを入力してください!n";
}
$sql="select * from zl_usr where zl_usr='$usr' and 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("送信ボタン","値","続行");
$objResponse->addAssign("submitButton","無効",false);
}
$objResponse を返します。
}
$xajax->processRequests();
?>
ログインと登録の原理は似ているので、これ以上ナンセンスではありません:)
さらに、使用される 2 つのファイル コードは次のとおりです conn.php function.php
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))
{
false を返します。
}
true を返します。
}
//配列に値があるかどうか
function FunStringExist($StrFiltrate,$ArrFiltrate){
foreach ($ArrFiltrate as $key=>$value){
if (eregi($value,$StrFiltrate)){
true を返します。
}
}
false を返します。
}
?>