html ajax在标签形式wordpress工作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html ajax在标签形式wordpress工作相关的知识,希望对你有一定的参考价值。
<?php
/**
* Validat of register form
*
*/
require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
/* Проверяем существуют ли переменные, которые передала форма
Если не существуют, то мы их создаем.
Если форма передала пустые значения мы их удаляем */
if (isset($_POST['name'])) {
$name = $_POST['name'];
}
else {
$name = false;
}
//check if mail exist
if (isset($_POST['email'])) {
$mail = $_POST['email'];
}
else
$mail = false;
// check if password exist
if (isset($_POST['firstps'])) {
$pass = $_POST['firstps'];
}
else
$pass= false;
// check if password confirmation exist
if (isset($_POST['secondps'])) {
$pass2 = $_POST['secondps'];
}
else
$pass2= false;
// check if submit button was clicked
if (isset($_POST['submit'])) {
$submit = $_POST['submit'];
}
else
$submit = 0;
registerFormAction ($name, $mail, $pass, $pass2, $submit);
function registerFormAction ($username = false, $email = false, $pasword= false, $pas2 = false, $submit)
{
if ($submit == 1)
{
global $wpdb;
$table_temp_new_user = $wpdb->prefix.'reg_temp';
$user = chekUsername ($username);
$maill = checkEmail ($email);
$passw = checkPassword ($pasword, $pas2);
if (!isset ($user) && !isset ($maill) && !isset($passw))
{
echo "$('#mess').html('sucsess');";
$ctime = time ();
$randomCode = wp_generate_password ($length = 12, $include_standart_special_chars=false);
$checkinUrl = home_url() . '/emailcheck?randomCode=' . $randomCode;
$mailText = "Your login is .For activation go to " . $checkinUrl;
$hashpas = crypt($pasword);
$wpdb->insert ($table_temp_new_user, array (
'username' => $username,
'useremail' => $email,
'password' => $hashpas,
'code' => $randomCode,
'time' => $ctime,
), array ('%s','%s','%s','%s','%d',));
wp_mail ($maill, "post check", $mailText );
$bra = 'fine' . $checkinUrl;
echo "$('#m_reg_user_form').html('" . $bra . "');";
}
else
return;
}
else {
if ($username)
{
chekUsername ($username);
return;
}
else if ($email){
checkEmail ($email);
return;
}
else if ($pasword){
checkPassword ($pasword, $pas2);
return;
}
else if ($pas2){
checkPassword ($pasword, $pas2);
return;
}
}
}
function chekUsername ($username)
{
if ($username)
{
if( !validate_username( $username ) )
{
$error = __('Invalid username. You must use only english letters, numbers or symbols: _-.* space','newsite2');
//echo $error;
echo "$('#nameError').html('" . $error . "');";
return $error;;
}
if (strlen ($username) < 4 || strlen ($username) > 60)
{
$error = __('The length of username must be more an 5 and less then 60','newsite2');
//echo $error;
echo "$('#nameError').html('" . $error . "');";
return $error;;
}
// проверка есть ли в бд данное имя пользователя
if ( username_exists($username) != null)
{
$error = __('This username already exists','newsite2');
echo "$('#nameError').html('" . $error . "');";
return $error;;
}
$error = '';
echo "$('#nameError').html('" . $error . "');";
return ;
}
else {
$error = __('Enter username, please!','newsite2');
echo "$('#nameError').html('" . $error . "');";
return $error;
}
}
function checkEmail ($email)
{
if ($email)
{
if (!is_email ($email)) {
$error = __('Invalid email','newsite2');
echo "$('#emailError').html('" . $error . "');";
return $error;
}
if (strlen ($email) > 100)
{
$error = __('The length of email must be less then 100','newsite2');
echo "$('#emailError').html('" . $error . "');";
return $error;
}
// проверка есть ли в бд данное имя пользователя
if ( email_exists($email) != null)
{
$error = __('This email already exists','newsite2');
echo "$('#emailError').html('" . $error . "');";
return $error;
}
$error = '';
echo "$('#emailError').html('" . $error . "');";
return ;
}
else {
$error = __('Enter email, please!','newsite2');
echo "$('#emailError').html('" . $error . "');";
return $error;
}
}
function checkPassword ($pas1, $pas2)
{
if ($pas1 && $pas2)
{
//$template = "/([0-9]*[a-Z]*[_]*[\.]*[\-]*){10,}/";
//if (if (eregi("['\<|\>|\?|\!|\&]", $fname)))
// if pasword has invalid symbols < > ? ! &
if ( preg_match("['\<|\>|\?|\!|\&|\'|\"]", $pas1) == 1){
$error = __('Password has invalid symbols','newsite2');
echo "$('#passError').html('" . $error . "');";
return $error;
}
// password must be more then 6
if (strlen ($pas1) < 6)
{
$error = __('The length of password must be more then 6','newsite2');
echo "$('#passError').html('" . $error . "');";
return $error;
}
// check if passwords is the same
if ( strcmp($pas1, $pas2) != 0)
{
$error = __('Passwords not the same','newsite2');
echo "$('#passError').html('" . $error . "');";
return $error;
}
$error = '';
echo "$('#passError').html('" . $error . "');";
return ;
}
else if (!$pas1) {
$error = __('Enter password, please!','newsite2');
echo "$('#passError').html('" . $error . "');";
return $error;
}
else if (!$pas2) {
$error = __('Enter password confirmation, please!','newsite2');
echo "$('#passError').html('" . $error . "');";
return $error;
}
}
$(document).ready(function() {
// ajax registr form
$("#m_reg_user_form").submit(function(){ // пeрeхвaтывaeм всe при сoбытии oтпрaвки
console.log ('in submin js');
var templateDirectory = objInJs.data + '/modulphp/reg.php';
var form = $(this); // зaпишeм фoрму, чтoбы пoтoм нe былo прoблeм с this
//var error = false; // прeдвaритeльнo oшибoк нeт
/*if form.find('input, textarea').each( function(){ // прoбeжим пo кaждoму пoлю в фoрмe
($(this).val() == '') { // eсли нaхoдим пустoe
alert('Зaпoлнитe пoлe "'+$(this).attr('placeholder')+'"!'); // гoвoрим зaпoлняй!
error = true; // oшибкa
}
});
*/
//if (!error) { // eсли oшибки нeт
var data = form.serialize(); // пoдгoтaвливaeм дaнныe
console.log (data);
$.ajax({ // инициaлизируeм ajax зaпрoс
type: 'POST', // oтпрaвляeм в POST фoрмaтe, мoжнo GET
url: templateDirectory, // путь дo oбрaбoтчикa,
dataType: 'script',
data: data, // дaнныe для oтпрaвки
beforeSend: function(data) { // сoбытиe дo oтпрaвки
form.find('#registerBtn').attr('disabled', 'disabled'); // нaпримeр, oтключим кнoпку, чтoбы нe жaли пo 100 рaз
},
complete: function(data) { // сoбытиe пoслe любoгo исхoдa
form.find('#registerBtn').prop('disabled', false); // в любoм случae включим кнoпку oбрaтнo
//$('#mess').html('complete');
},
error: function(response) { //Если ошибка
document.getElementById('mess').innerHTML = "Ошибка ";
}
});
//}
return false; // вырубaeм стaндaртную oтпрaвку фoрмы
});
}
<?php
echo
'<form method="post" action="" id="m_reg_user_form">
<div id="mess"></div>
<div id="nameError"></div>
<div id="emailError"></div>
<div id="passError"></div>
<input type="text" name="name" id="Usname" class="regInput" placeholder="' . __('Enter username * ','newsite2') . '" autocomplete="on" maxlength="30" >
<input type="email" id="Useremail" class="regInput" name="email" placeholder ="' . __('Enter your email * ','newsite2') . '" autocomplete="on" >
<input type="password" class="regInput" id="UserPassword" name="firstps" placeholder ="' . __('Password * ','newsite2') . '" autocomplete="off" maxlength="100" >
<input type="password" id="PasswordAgain" class="regInput" name="secondps" placeholder ="' . __('Repeat password * ','newsite2') . '" autocomplete="off" maxlength="100" >
<input id="registerBtn" type="submit" value="' . __('Submit','newsite2') . '" >
<input type="hidden" name="submit" value="1">
</form>';
以上是关于html ajax在标签形式wordpress工作的主要内容,如果未能解决你的问题,请参考以下文章
WordPress 中的 Ajax 调用返回整个 HTML 页面作为响应
如何让 Drupal 使用 Wordpress 形式的编辑代码?