Есть страница регистрации, выглядит следующим образом:
<?php
include("include/db_connect.php");
include("functions/functions.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ru">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/styles.css">
<link rel="stylesheet" href="trackbar/trackbar.css">
<link rel="stylesheet" href="css/reset.css">
<script type="text/javascript" src="/js/jquery-2.2.4.min.js"></script>
<!--<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> -->
<script type="text/javascript" src="/js/jcarousellite_1.0.1.js"></script>
<script type="text/javascript" src="/js/shop-script.js"></script>
<script type="text/javascript" src="/js/reg-val.js"></script>
<script type="text/javascript" src="/js/jquery.cookie.min.js"></script>
<script type="text/javascript" src="/trackbar/jquery.trackbar.js"></script>
<script type="text/javascript" src="/js/jquery.form.js"></script>
<script type="text/javascript" src="/js/jquery.validate.js"></script>
<title>Регистрация</title>
</head>
<body>
<div id="block-body">
<!-- Подключение шапки сайта -->
<?php
include("include/block-header.php");
?>
<!-- Подключение блоков категорий товаров, фильтра параметров и новостей -->
<div id="block-right">
<?php
include("include/block-category.php");
include("include/block-parameter.php");
include("include/block-news.php");
?>
</div>
<!-- Блок отображения основного контента сайта -->
<div id="block-content">
<h2 class="h2-title">Регистрация</h2>
<form action="/reg/handler_reg.php" method="POST" id="form_reg">
<p id="reg_message"></p>
<div id="block-form-registration">
<ul id="form-registration">
<li>
<label for="">Логин</label>
<span class="star">*</span>
<input type="text" name="reg_login" id="reg_login">
</li>
<li>
<label for="">Пароль</label>
<span class="star">*</span>
<input type="text" name="reg_pass" id="reg_pass">
<span id="genpass">Сгенерировать</span>
</li>
<li>
<label for="">Фамилия</label>
<span class="star">*</span>
<input type="text" name="reg_surname" id="reg_surname">
</li>
<li>
<label for="">Имя</label>
<span class="star">*</span>
<input type="text" name="reg_name" id="reg_name">
</li>
<li>
<label for="">Отчество</label>
<span class="star">*</span>
<input type="text" name="reg_patronymic" id="reg_patronymic">
</li>
<li>
<label for="">E-mail</label>
<span class="star">*</span>
<input type="text" name="reg_email" id="reg_email">
</li>
<li>
<label for="">Мобильный телефон</label>
<span class="star">*</span>
<input type="text" name="reg_phone" id="reg_phone">
</li>
<li>
<label for="">Адрес доставки</label>
<span class="star">*</span>
<input type="text" name="reg_address" id="reg_address">
</li>
<li>
<div id="block-captcha">
<img src="/reg/reg_captcha.php" alt="captcha">
<input type="text" name="reg_captcha" id="reg_captcha">
<p id="reloadcaptcha">Обновить</p>
</div>
</li>
</ul>
</div>
<p align="right">
<input type="submit" name="reg_submit" id="form_submit" value="Регистрация">
</p>
</form>
</div>
<!-- Подключение нижней части сайта -->
<?php
include("include/block-footer.php");
?>
</div>
</body>
</html>
Есть так же обработчик, который вносит данные с формы регистрации в базу:
<?php
if($_SERVER["REQUEST_METHOD"] == "POST")
{
session_start();
define('myeshop', true);
include("../include/db_connect.php");
include("../functions/functions.php");
$error = array();
$login = iconv("UTF-8", "cp1251",strtolower(clearString($_POST['reg_login'])));
$pass = iconv("UTF-8", "cp1251",strtolower(clearString($_POST['reg_pass'])));
$surname = iconv("UTF-8", "cp1251",clearString($_POST['reg_surname']));
$name = iconv("UTF-8", "cp1251",clearString($_POST['reg_name']));
$patronymic = iconv("UTF-8", "cp1251",clearString($_POST['reg_patronymic']));
$email = iconv("UTF-8", "cp1251",clearString($_POST['reg_email']));
$phone = iconv("UTF-8", "cp1251",clearString($_POST['reg_phone']));
$address = iconv("UTF-8", "cp1251",clearString($_POST['reg_address']));
if (strlen($login) < 5 or strlen($login) > 15)
{
$error[] = "Логин должен быть от 5 до 15 символов!";
}
else
{
$result = mysqli_query($link, "SELECT login FROM reg_user WHERE login = '$login'");
If (mysqli_num_rows($result) > 0)
{
$error[] = "Логин занят!";
}
}
if (strlen($pass) < 7 or strlen($pass) > 15) $error[] = "Укажите пароль от 7 до 15 символов!";
if (strlen($surname) < 3 or strlen($surname) > 20) $error[] = "Укажите Фамилию от 3 до 20 символов!";
if (strlen($name) < 3 or strlen($name) > 15) $error[] = "Укажите Имя от 3 до 15 символов!";
if (strlen($patronymic) < 3 or strlen($patronymic) > 25) $error[] = "Укажите Отчество от 3 до 25 символов!";
if (!preg_match("/^(?:[a-z0-9]+(?:[-_.]?[a-z0-9]+)?@[a-z0-9_.-]+(?:\.?[a-z0-9]+)?\.[a-z]{2,5})$/i",trim($email))) $error[] = "Укажите корректный email!";
if (!$phone) $error[] = "Укажите номер телефона!";
if (!$address) $error[] = "Необходимо указать адрес доставки!";
if($_SESSION['img_captcha'] != strtolower($_POST['reg_captcha'])) $error[] = "Неверный код с картинки!";
unset($_SESSION['img_captcha']);
if (count($error))
{
echo implode('<br />',$error);
}else
{
$pass = md5($pass);
$pass = strrev($pass);
$pass = "9nm2rv8q".$pass."2yo6z";
$ip = $_SERVER['REMOTE_ADDR'];
mysqli_query($link, "INSERT INTO reg_user(login,password,surname,name,patronymic,email,phone,address,datetime,ip)
VALUES(
'".$login."',
'".$pass."',
'".$surname."',
'".$name."',
'".$patronymic."',
'".$email."',
'".$phone."',
'".$address."',
NOW(),
'".$ip."'
)");
echo true;
}
}
?>
И есть скрипт, в котором происходит валидация данных, а так же вывод ajax'ом уведомления о том, что регистрация успешно прошла.
$(document).ready(function() {
$('#form_reg').validate(
{
// правила для проверки
rules:{
"reg_login":{
required:true,
minlength:5,
maxlength:15,
remote: {
type: "post",
url: "/reg/check_login.php"
}
},
"reg_pass":{
required:true,
minlength:7,
maxlength:15
},
"reg_surname":{
required:true,
minlength:3,
maxlength:15
},
"reg_name":{
required:true,
minlength:3,
maxlength:15
},
"reg_patronymic":{
required:true,
minlength:3,
maxlength:25
},
"reg_email":{
required:true,
email:true
},
"reg_phone":{
required:true
},
"reg_address":{
required:true
},
"reg_captcha":{
required:true,
remote: {
type: "post",
url: "/reg/check_captcha.php"
}
}
},
// выводимые сообщения при нарушении соответствующих правил
messages:{
"reg_login":{
required:"Укажите Логин!",
minlength:"От 5 до 15 символов!",
maxlength:"От 5 до 15 символов!",
remote: "Логин занят!"
},
"reg_pass":{
required:"Укажите Пароль!",
minlength:"От 7 до 15 символов!",
maxlength:"От 7 до 15 символов!"
},
"reg_surname":{
required:"Укажите вашу Фамилию!",
minlength:"От 3 до 20 символов!",
maxlength:"От 3 до 20 символов!"
},
"reg_name":{
required:"Укажите ваше Имя!",
minlength:"От 3 до 15 символов!",
maxlength:"От 3 до 15 символов!"
},
"reg_patronymic":{
required:"Укажите ваше Отчество!",
minlength:"От 3 до 25 символов!",
maxlength:"От 3 до 25 символов!"
},
"reg_email":{
required:"Укажите свой E-mail",
email:"Не корректный E-mail"
},
"reg_phone":{
required:"Укажите номер телефона!"
},
"reg_address":{
required:"Необходимо указать адрес доставки!"
},
"reg_captcha":{
required:"Введите код с картинки!",
remote: "Не верный код проверки!"
}
},
submitHandler: function(form){
$(form).ajaxSubmit({
success: function(data) {
if (data == true) {
$("#block-form-registration").fadeOut(300,function() {
$("#reg_message").addClass("reg_message_good").fadeIn(400).html("Вы успешно зарегистрированы!");
$("#form_submit").hide();
});
} else {
$("#reg_message").addClass("reg_message_error").fadeIn(400).html(data);
}
}
});
}
});
});
Так вот, скрипт подключен (в первом листинге это видно, файл reg-val.js), валидация работает прекрасно, но при нажатии "регистрация" сообщения аджаксом не выводится, лишь переходит на файл второго листинга (handler_reg.php) и выводит на пустую страницу цифру 1...При этом данные с формы успешно заносятся в БД!!! В чем может быть проблема? Целый день не могу отловить ошибку...
Проблема может быть в том что функция которая вызывается по нажатию кнопки не возвращает false и в свою очередь срабатывает стандартный submit html формы.
submitHandler: function(form){ ... return false; }
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я новичок в js подскажите пожалста, как решить такое У меня есть следующая структура