Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.02.2014, 15:03
Новичок на форуме
Отправить личное сообщение для lodem009 Посмотреть профиль Найти все сообщения от lodem009
 
Регистрация: 25.12.2013
Сообщений: 8

ajax обработчик не пойму в чем проблема???
Всем привет не подскажите в чем проблема
вот код php авторизации и регистрации
<body>
<!--avtorization-->
<div class="auth-links">
	<ul id="auth-nav" class="auth-nav">
		<li>
                	<a href="#" id="button">Вход</a>
		</li>
		<li>
                	<a href="#" id="button1">Регистрация</a>
		</li>
	</ul>
</div>
<div id="vhod">
	<div id="heading">
		<div class="com_gon">
			<a>Авторизация на</a>
			<a>blukino.ru</a>
		</div>
	</div>
	<div id="content">
	    <form id="forms" name="newUser" action="" method="post" class="rf">
                
                <p>
                    <label>E-mail</label>
                    <input type="text" name="email" class="rfield" id="email" />
                </p>
                
                <p>
                    <label>Пароль</label>
                    <input type="password" name="password" class="rfield" id="password" />
                </p>
				<p>
					<input type="checkbox" name="remember_me" value="1" />	
                    <label><small>Запомнить меня?</small></label>
                </p> 
		 <div class="modal-footer">
<input type="submit" name="new" id="newfeedform" class="btn_submit disabled" value="Register" />
  </div>  
                </form>
	    <a class="sun-close brig"></a>
	</div>
</div>
<div id="reg">
	<div id="heading1">
		<div class="com_gon">
			<a>Регистрация на</a>
			<a>blukino.ru</a>
		</div>
	</div>
	<div id="content1">
		<form id="regform" name="newUser" action="javascript:void(null);" onsubmit="call()" method="post" class="rf" style="border-right: 1px solid #777;width: 250px;margin-top: 20px;margin-left: 0px;">
                <p>
                    <label>E-mail</label>
                    <input name="email" class="input" type="text" id="email" style="width: 210px;height: 30px;margin-left: 20px;border: 0px;background-color: #505050;color: #BDBDBD;font-size: 16px;" />
                </p>
                <p>
                    <label>Пароль</label>
                    <input name="password" class="input" type="password" id="password" style="width: 210px;height: 30px;margin-left: 20px;border: 0px;background-color: #505050;color: #BDBDBD;font-size: 16px;" />
                </p>
				<p>
					<label>Введите текст с картинки</label>
					 <input name="pkey" type="text" class="input"><br /><img src="reg/captcha/captcha.php"></p>
					<span class="cleckkable" onclick="this.src=this.src+'&amp;'+Math.round(Math.random())">Поменять код</span>
				</p>
				<input type="submit" name="button" class="button" value="Register" style="margin-top: 15px;margin-left: 80px;" />
  </div>  
                </form>
	    <a class="sun-close brig"></a>
	</div>
<!--jQuery-->
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
	<script src="assets/js/jquery.reveal.js"></script>
	<script type="text/javascript">
		$(document).ready(function() {
			$('#button').click(function(e) { // Button which will activate our modal
			   	$('#vhod').reveal({ // The item which will be opened with reveal
				  	animation: 'fade',                   // fade, fadeAndPop, none
					animationspeed: 600,                       // how fast animtions are
					closeonbackgroundclick: true,              // if you click background will modal close?
					dismissmodalclass: 'sun-close'		   // the class of a button or element that will close an open modal
				});
			return false;
			});
		$(document).ready(function() {
			$('#button1').click(function(e) { // Button which will activate our modal
			   	$('#reg').reveal({ // The item which will be opened with reveal
				  	animation: 'fade',                   // fade, fadeAndPop, none
					animationspeed: 600,                       // how fast animtions are
					closeonbackgroundclick: true,              // if you click background will modal close?
					dismissmodalclass: 'sun-close'    // the class of a button or element that will close an open modal
				});
			return false;
			});
		});
	});
	</script>
<!-- / jQuery -->
<!-- / avtorization -->
<div class="results"></div>
</body>
</html>



Вот js отправка формы на обработчик
<script type="text/javascript" language="javascript">
    function call() {
      var msg   = $('#regform').serialize();
        $.ajax({
          type: 'POST',
          url: 'register.php',
          data: msg,
          success: function(data) {
            $('.results').html(data);
          },
          error:  function(xhr, str){
                alert('Возникла ошибка: ' + xhr.responseCode);
            }
        });
 
    }
</script>


А вот обработчик php формы
<?php include_once('reg/include/config.php');?>
<?php include_once('reg/include/function.php');?>
<?php
  
  if(!$_SESSION['id']){
	include_once('reg/tmp/register.tpl');
	} else {exit("Вы уже зарегистрированны");}
 if($_POST['button']){
	//Проверяем правильность кода капчи
	if($_SESSION[secret_number]==""){
		$_SESSION[secret_number] = "ABCD";
	}
	if($_SESSION["secret_number"] != $_POST[pkey]){
		return exit("<b>Ошибка номера ввода капчи</b>");
	}



//Обрабатываем наши поля чтобы нам не написали html или js код
$email = trim(htmlspecialchars($_POST['email'],ENT_QUOTES));
$password = trim(htmlspecialchars($_POST['password'],ENT_QUOTES));
stripslashes($email);
stripslashes($password);
//Проверка на пустоту
if($email == "" && $password){return exit("Не все поля заполненны");}
//Проверяем есть ли пользователь с таким мылом в нашей базе
$select = "SELECT * FROM users";
$query = mysql_query($select) or die(mysql_error());
$array = mysql_fetch_array($query);
//Выводим сообщение если БД пуста
if(@mysql_num_rows($query) <= 0){return exit('В базе данных нет записей');}
if(mysql_num_rows($query) > 0){
tmp_email($email);
}
//Шифруем пароль
$password = md5($password);
//Добавляем данные в Базу данных
db_insert($email,$password);
//Запоминаем сессию
$cookie = mysql_query("SELECT * FROM users WHERE email ='$email'") or die(mysql_error());
$assoc = mysql_fetch_assoc($cookie);
$_SESSION['id'] = $assoc['id_user'];
//Запоминаем куки
$_COOKIE['id'] = $_SESSION['id'];
//Если все успешно выводим текст и запоминаем юзера
echo "Вы успешно зарегистрированны, <a href='index.php'><b>перейти в личный кабинет</b></a>";
?>
<b><a href="exit.php">Выйти</a></b>
<?php

 exit;
}


?>
В чем проблема??? Отсылаю запрос проходит а ответа нет??? подскажите. Зарание спс.
Ответить с цитированием
  #2 (permalink)  
Старый 17.02.2014, 21:51
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Существует теоретическая вероятность что в бд нет требуемого кортежа. Поэтому приходит 0 строк.
Ответить с цитированием
  #3 (permalink)  
Старый 17.02.2014, 21:54
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

if(@mysql_num_rows($query) <= 0){return exit('В базе данных нет записей');}


А оно точно не прошмыгнет по ошибке которую вы подавляете?

Слишком много кода и слишком мало симптомов.

Вы можете сперва глянуть что браузер выдает на экране, через die() хотя бы.
Ответить с цитированием
  #4 (permalink)  
Старый 17.02.2014, 21:59
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сумел-таки прочитать, походу там голимый один бред.

//Обрабатываем наши поля чтобы нам не написали html или js код
20	$email = trim(htmlspecialchars($_POST['email'],ENT_QUOTES));
21	$password = trim(htmlspecialchars($_POST['password'],ENT_QUOTES)


Это значит юзер хрена-то зайдет поле регистрации.

//Проверяем есть ли пользователь с таким мылом в нашей базе
27	$select = "SELECT * FROM users";
28	$query = mysql_query($select) or die(mysql_error());


Мыло у юзера явно в заднице застряло. И поделом.
Ответить с цитированием
  #5 (permalink)  
Старый 17.02.2014, 22:03
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

На хтмл проверяют так

if($var != strip_tags($var))
throw // какой-то эксепшн, или тупо ретурн с мессагой на рендер формы.

Окодемически можно через strcmp() сравнить.

А проверку на дубликат юзера делают правильно те, кто догадался полю логин впиндюрить уникальный индекс. И тогда запрос

insert into users (login, pass, email) select "$login", "$password", "$email";

выдаст сообщение об ошибке, 1062 если не ошибаюсь для майскли, по которой скрипт поймет что такой юзер уже ест и скажет введите другой логин. А если такой логин свободен - сразу все запишется.

Ну или окодемически же,

select * from users where login = $login;

но читать данные не надо, достаточно посмотреть affected_rows

Последний раз редактировалось kostyanet, 17.02.2014 в 22:10.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книги по Ajax BaVa Учебные материалы 18 18.08.2013 14:05
Как работает обработчик в файле, подгруженном AJAX SweetySugar AJAX и COMET 1 20.08.2011 17:17
Проблема с AJAX запросом + mod_rewrite BrokenEye AJAX и COMET 1 12.07.2009 02:08
Проблема с Ajax запросом в IE и Opera flash_uz AJAX и COMET 0 30.04.2009 15:08
В чем проблема? скрипт по удалению фото... :( yukazerg23 jQuery 2 29.04.2009 10:25