Veuillez saisir du texte dans la zone de texte. Introduction et essai du framework PHP ajax xajax
1. Comparaison de xajax et d'autres frameworks ajax.
La fonction xajax est très simple, mais très flexible ! ~ Ce n'est pas comme certains autres grands frameworks. Ses fonctions sont effectivement puissantes, mais sa vitesse d'exécution ne peut être complimentée. . Bien qu’il possède de nombreuses fonctions, il n’est pas assez flexible. Il existe tellement d’API que les apprendre, c’est comme apprendre une nouvelle langue.
2. Introduction aux fonctions xajax
La fonction de xajax est relativement simple, mais en raison de sa simplicité, elle est flexible. Dans le même temps, cela nécessite également que les utilisateurs aient une certaine compréhension des scripts clients javascrīpt/vbs. Car sa fonction est relativement vivante. On peut dire que rien ne peut être fait en utilisant simplement xajax, mais tout peut être fait avec js/vbs.
Xajax utilise principalement la classe xajaxResponse, qui fournit quelques méthodes, par exemple :
1. ajouter une alerte ($ sMsg)
avertissement contextuel
2. ajoute un script ($sJS)
Exécuter un certain morceau de js
3. $objResponse->addAssign("","","")
Attacher une valeur à un élément de la page, ou modifier ses propriétés, etc. . . .
Donc xajax n'est pas mort, il ne peut pas créer de fonctions XXX XXX, mais il peut contrôler de manière flexible les js/vbs du client pour obtenir l'effet que nous souhaitons obtenir.
3. L'installation et la configuration de Xajax ne nécessitent aucune installation ni configuration particulière. Téléchargez simplement son package de fichiers et décompressez-le dans le répertoire de téléchargement :
http://www.xajaxproject.org/
3. Utilisez xajax pour l'inscription et la connexion des membres
1. La base de données utilise mysql5.0, le nom de la base de données est zl, le nom de la table est la structure de table zl_user
id int(11) auto_increment
zl_uservarchar(50)
zl_pwdvarchar(50)
email varchar(50)
2. fichier d'enregistrement reg.php (avec instructions)
<?php
require_once("inc/xajax.inc.php");
//Pour utiliser xajax, vous devez d'abord introduire xajax.inc.php
$xajax = nouveau xajax("inc/signup.php");
//Créer un objet xajax pour singup.php
$xajax->registerFunction("processForm");
//Utilisez la fonction processForm dans singup.php
?>
<tête>
<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=" texte/css">
<title>Document sans titre</title>
<?php $xajax->printJavascrīpt('inc/');
<script type="text/javasscript">
fonction submitSignup()
{
xajax.$('submitButton').disabled=true;
xajax.$('submitButton').value=" http: //blogbeta.blueidea.com/wait ...";
//Modifier l'attribut avec l'ID submitButton
xajax_processForm(xajax.getFormValues("signupForm"));
//Ici, xajax_ est suivi de la fonction à utiliser. Voici processForm, suivi d'une collection d'éléments de formulaire signupForm.
renvoie faux ;
}
</script>
</tête>
<body><form id="signupForm" action="javascrīpt:void(null);" ōnSubmit="submitSignup();">
<div id="main">
<div id="m1">Inscription des utilisateurs</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">Nom d'utilisateur :</td>
<td width="69%"><input name="usr" type="text" id="usr" />
*</td>
</tr>
<tr>
<td align="right">Mot de passe :</td>
<td><input name="pwd" type="password" id="pwd" />
*</td>
</tr>
<tr>
<td align="right">Mot de passe :</td>
<td><input name="pwd2" type="password" id="pwd2" />
*</td>
</tr>
<tr>
<td align="right">E-mail :</td>
<td><input name="email" type="text" id="email" />
* Peut être utilisé pour récupérer le mot de passe</td>
</tr>
<tr align="centre">
<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>
</corps>
</html>
Après avoir cliqué sur Soumettre, exécutez la fonction processForm 3 dans singup.php
, inc/singup.php
<?php
définir ('XAJAX_DEFAULT_CHAR_ENCODING', 'gb2312' );
//Notez ici que gb2312 doit être défini, sinon le chinois sera tronqué
require_once("xajax.inc.php");
require_once("fonction.php");
$xajax = nouveau xajax();
$xajax->registerFunction("processForm");
//Identique à
la fonction du fichier reg.php processForm($aFormValues)
{
$objResponse = new xajaxResponse();
require_once("conn.php");
$usr=$aFormValues['usr'];
$email=$aFormValues['email'];
$pwd=$aFormValues['pwd'];
$pw=Md5($pwd);
$errmsg="";
//Caractères illégaux à filtrer
$ArrFiltrate=array("'",";","union");
foreach($aFormValues as $key=>$value){
if (FunStringExist($value,$ArrFiltrate)){
$objResponse->addAlert("Les informations saisies contiennent des caractères illégaux"' ; union!"");
$objResponse->addAssign("submitButton","value","continue");
$objResponse->addAssign("submitButton","disabled",false);
renvoie $objResponse ;
}
}
si (trim($usr) == "")
{
$errmsg.="Veuillez entrer votre nom d'utilisateur !n";
}
si (trim($pwd) == "")
{
$errmsg.="Veuillez entrer votre mot de passe !n";
}
si ($pwd != $aFormValues['pwd2'])
{
$errmsg.="Les mots de passe saisis deux fois sont incohérents !n";
}
si (!CheckEmailAddr($email))
{
$errmsg.="L'adresse e-mail est incorrecte !n";
}
$sql="select * from zl_usr où zl_usr='$usr'";
$result=mysql_query($sql,$db);
si($myrow=mysql_fetch_array($result)){
$errmsg.="Le nom d'utilisateur existe déjà !n";
}
si ($errmsg=="")
{
$sForm = "Inscription réussie<br>Nom d'utilisateur :".$usr."<br>email :".$email."";
$sql="insérer dans les valeurs zl_usr(zl_usr,zl_pwd,email)('$usr','$pw','$email')";
$result=mysql_query($sql,$db);
$objResponse->addAssign("formDiv","innerHTML",$sForm);
}
autre
{
$objResponse->addAlert($errmsg);
//Message d'erreur contextuel
$objResponse->addAssign("submitButton","value","continue");
//Modifiez la valeur de submitButton pour continuer
$objResponse->addAssign("submitButton","disabled",false);
//Modifier les propriétés du bouton submitButton
}
renvoie $objResponse ;
}
$xajax->processRequests();
?>
La validité des informations est jugée dans ce fichier, notamment : si le nom d'utilisateur a été enregistré, s'il y a des caractères illégaux dans les informations, si l'adresse e-mail est correcte, si les mots de passe saisis deux fois sont cohérents et s'il y a il n'y a pas d'erreurs, elles sont entrées dans la base de données, et
$objResponse->addAssign("formDiv","innerHTML",$sForm);
Réinsérez le code dans formDiv avec le contenu $sForm
$sForm = "Inscription réussie<br>Nom d'utilisateur :".$usr."<br>email :".$email.""
S'il y a un message d'erreur, alors
$objResponse->addAlert($errmsg);
//Message d'erreur contextuel
$objResponse->addAssign("submitButton","value","continue");
$objResponse->addAssign("submitButton","disabled",false);
//Modifier les attributs du submitButton
3. Fichier de connexion login.php
<?php
require_once("inc/xajax.inc.php");
$xajax = nouveau xajax("inc/login.php");
$xajax->registerFunction("processForm");
?>
<tête>
<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=" texte/css">
<title>Document sans titre</title>
<?php $xajax->printJavascrīpt('inc/');
<script type="text/javasscript">
fonction submitSignup()
{
xajax.$('submitButton').disabled=true;
xajax.$('submitButton').value=" http: //blogbeta.blueidea.com/wait ...";
xajax_processForm(xajax.getFormValues("signupForm"));
renvoie faux ;
}
</script>
</tête>
<body><form id="signupForm" action="javascrīpt:void(null);" ōnSubmit="submitSignup();">
<div id="main">
<div id="m1">Connexion utilisateur</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">Nom d'utilisateur :</td>
<td width="69%"><input name="usr" type="text" id="usr" />
*</td>
</tr>
<tr>
<td align="right">Mot de passe :</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>
</table>
</div>
</div>
</form>
</corps>
</html>
4. Fichier de traitement de connexion inc/login.php
<?php
définir ('XAJAX_DEFAULT_CHAR_ENCODING', 'gb2312' );
require_once("xajax.inc.php");
require_once("fonction.php");
$xajax = nouveau xajax();
$xajax->registerFunction("processForm");
fonction processusForm($aFormValues)
{
$objResponse = new xajaxResponse();
require_once("conn.php");
$usr=$aFormValues['usr'];
$email=$aFormValues['email'];
$pwd=$aFormValues['pwd'];
$pw=Md5($pwd);
$errmsg="";
//Caractères illégaux à filtrer
$ArrFiltrate=array("'",";","union");
foreach($aFormValues as $key=>$value){
if (FunStringExist($value,$ArrFiltrate)){
$objResponse->addAlert("Les informations saisies contiennent des caractères illégaux"' ; union!"");
$objResponse->addAssign("submitButton","value","continue");
$objResponse->addAssign("submitButton","disabled",false);
renvoie $objResponse ;
}
}
si (trim($usr) == "")
{
$errmsg.="Veuillez entrer votre nom d'utilisateur !n";
}
si (trim($pwd) == "")
{
$errmsg.="Veuillez entrer votre mot de passe !n";
}
$sql="select * from zl_usr où zl_usr='$usr' et zl_pwd='$pw'";
$result=mysql_query($sql,$db);
if(!$myrow=mysql_fetch_array($result)){
$errmsg.="Le nom d'utilisateur n'existe pas ou le mot de passe est erroné !n";
}
si ($errmsg=="")
{
$sForm = "Connexion réussie" ;
$objResponse->addAssign("formDiv","innerHTML",$sForm);
}
autre
{
$objResponse->addAlert($errmsg);
$objResponse->addAssign("submitButton","value","continue");
$objResponse->addAssign("submitButton","disabled",false);
}
renvoie $objResponse ;
}
$xajax->processRequests();
?>
Les principes de connexion et d'inscription sont similaires, donc plus de bêtises :)
De plus, voici les deux codes de fichiers utilisés conn.php function.php
conn.php
<?php
$database="zl";//nom de la base de données MYSQL
$db = mysql_connect("127.0.0.1", "root","123456");//Nom d'utilisateur et mot de passe de la base de données MYSQL
mysql_select_db($base de données,$db);
?>
fonction.php
<?php
fonction CheckEmailAddr($C_mailaddr)
{
if (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+ )*$",
$C_adressemail))
{
renvoie faux ;
}
renvoie vrai ;
}
// S'il y a une valeur dans le tableau
fonction FunStringExist($StrFiltrate,$ArrFiltrate){
foreach ($ArrFiltrate as $key=>$value){
if (eregi($value,$StrFiltrate)){
renvoie vrai ;
}
}
renvoie faux ;
}
?>