Пожалуйста, введите текст в текстовое поле. PHP ajax framework. Введение и пробная версия xajax.
1. Сравнение xajax и других ajax-фреймворков.
Функция xajax очень проста, но очень гибка! ~ Он не похож на некоторые другие крупные фреймворки. Его функции действительно мощные, но скорость его выполнения нельзя похвалить. . Хотя у него много функций, он недостаточно гибок. Существует так много API, что изучение его похоже на изучение нового языка.
2. Введение в функции xajax
Функция xajax относительно проста, но благодаря своей простоте она гибкая. В то же время это также требует от пользователей определенного понимания клиентских сценариев javascrīpt/vbs. Потому что его функция относительно жива. Можно сказать, что ничего нельзя сделать, просто используя xajax, но все можно сделать с помощью js/vbs.
Xajax в основном использует класс xajaxResponse, который предоставляет некоторые методы, например:
1. addAlert($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.
идентификатор int(11) auto_increment
zl_user варчар (50)
zl_pwd варчар (50)
электронная почта varchar(50)
2. регистрационный файл reg.php (с инструкциями)
<?php
require_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 " _fcksaveurl="" http://blogbeta.blueidea.com/css/style.css "" type=" текст/css">
<title>Документ без названия</title>
<?php $xajax->printJavasscript('inc/');
<script type="text/javascript">
функция submitSignup()
{
xajax.$('submitButton').disabled=true;
xajax.$('submitButton').value=" http://blogbeta.blueidea.com/wait ...";
//Изменяем атрибут с идентификатором submitButton
xajax_processForm(xajax.getFormValues("signupForm"));
//Здесь за 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" cellpacing="0" cellpadding="5">
<тр>
<td align="right"> </td>
<тд> </тд>
</tr>
<тр>
<td width="31%" align="right">Имя пользователя:</td>
<td width="69%"><input name="usr" type="text" id="usr" />
*</td>
</tr>
<тр>
<td align="right">Пароль:</td>
<td><input name="pwd" type="password" id="pwd" />
*</td>
</tr>
<тр>
<td align="right">Пароль:</td>
<td><input name="pwd2" type="password" id="pwd2" />
*</td>
</tr>
<тр>
<td align="right">Электронная почта:</td>
<td><input name="email" type="text" id="email" />
* Может использоваться для восстановления пароля</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>
</форма>
</тело>
</html>
После нажатия кнопки «Отправить» выполните функцию ProcessForm 3 в Singup.php
, inc/singup.php
<?php
определить ('XAJAX_DEFAULT_CHAR_ENCODING', 'gb2312');
//Здесь обратите внимание, gb2312 должен быть установлен, иначе китайцы будут искажаться
require_once("xajax.inc.php");
require_once("function.php");
$xajax = новый xajax();
$xajax->registerFunction("processForm");
//То же, что и функция файла reg.phpprocessForm
($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){
если (FunStringExist($value,$ArrFiltrate)){
$objResponse->addAlert("Введенная информация содержит недопустимые символы"' ; Union!"");
$objResponse->addAssign("submitButton", "value", "continue");
$objResponse->addAssign("submitButton", "disabled", false);
вернуть $objResponse;
}
}
если (trim($usr) == "")
{
$errmsg.="Пожалуйста, введите свое имя пользователя!n";
}
если (trim($pwd) == "")
{
$errmsg.="Пожалуйста, введите свой пароль!n";
}
if ($pwd != $aFormValues['pwd2'])
{
$errmsg.="Пароли, введенные дважды, несовместимы!n";
}
если (!CheckEmailAddr($email))
{
$errmsg.="Неправильный адрес электронной почты!n";
}
$sql="выберите * из zl_usr, где zl_usr='$usr'";
$result=mysql_query($sql,$db);
если ($myrow=mysql_fetch_array($result)){
$errmsg.="Имя пользователя уже существует!n";
}
если ($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);
Повторно вставьте код в formDiv с содержимым $sForm.
$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 = новый 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 " _fcksaveurl="" http://blogbeta.blueidea.com/css/style.css "" type=" текст/css">
<title>Документ без названия</title>
<?php $xajax->printJavasscript('inc/');
<script type="text/javascript">
функция submitSignup()
{
xajax.$('submitButton').disabled=true;
xajax.$('submitButton').value=" http://blogbeta.blueidea.com/wait ...";
xajax_processForm(xajax.getFormValues("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" cellpacing="0" cellpadding="5">
<тр>
<td align="right"> </td>
<тд> </тд>
</tr>
<тр>
<td width="31%" align="right">Имя пользователя:</td>
<td width="69%"><input name="usr" type="text" id="usr" />
*</td>
</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>
</форма>
</тело>
</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['email'];
$pwd=$aFormValues['pwd'];
$pw=Md5($pwd);
$errmsg="";
//Недопустимые символы, подлежащие фильтрации
$ArrFiltrate=array("'",";","union");
foreach($aFormValues as $key=>$value){
если (FunStringExist($value,$ArrFiltrate)){
$objResponse->addAlert("Введенная информация содержит недопустимые символы"' ; Union!"");
$objResponse->addAssign("submitButton","value","continue");
$objResponse->addAssign("submitButton", "disabled", false);
вернуть $objResponse;
}
}
если (trim($usr) == "")
{
$errmsg.="Пожалуйста, введите свое имя пользователя!n";
}
если (trim($pwd) == "")
{
$errmsg.="Пожалуйста, введите свой пароль!n";
}
$sql="выберите * из 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("submitButton", "value", "continue");
$objResponse->addAssign("submitButton", "disabled", false);
}
вернуть $objResponse;
}
$xajax->processRequests();
?>
Принципы входа и регистрации схожи, так что больше никакой ерунды :)
Кроме того, ниже приведены два используемых кода файла conn.php function.php
conn.php
<?php
$database="zl";//имя базы данных MySQL
$db = mysql_connect("127.0.0.1", "root","123456");//имя пользователя и пароль базы данных MySQL
mysql_select_db($база данных,$дб);
?>
функция.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 as $key=>$value){
if (eregi($value,$StrFiltrate)){
вернуть истину;
}
}
вернуть ложь;
}
?>