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+'&'+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; } ?>В чем проблема??? Отсылаю запрос проходит а ответа нет??? подскажите. Зарание спс. |
Существует теоретическая вероятность что в бд нет требуемого кортежа. Поэтому приходит 0 строк.
|
if(@mysql_num_rows($query) <= 0){return exit('В базе данных нет записей');} А оно точно не прошмыгнет по ошибке которую вы подавляете? Слишком много кода и слишком мало симптомов. Вы можете сперва глянуть что браузер выдает на экране, через die() хотя бы. |
Сумел-таки прочитать, походу там голимый один бред.
//Обрабатываем наши поля чтобы нам не написали 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()); Мыло у юзера явно в заднице застряло. И поделом. |
На хтмл проверяют так
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 |
Часовой пояс GMT +3, время: 06:05. |