js отправка формы
Всем привет не подскажите как сделать когда юзер зарегистрировался если все успешно то модальное окно с регистрацией закрываеться и открывается новое модальное окно вы успешно зарегистрировались потом оно через 3 сек закрываеться, и начинается автологин, тоесть автоматический вход на сайт как это реализовать зарание спс вот код
Это регистрация <?php include_once('reg/include/config.php'); include_once('reg/include/function.php'); // Проверяем заполнены ли email и пароль в куках "Авторизация" if(!empty($_COOKIE['email']) AND !empty($_COOKIE['password'])) { // Ищем пользователя в таблице users $search_user = mysql_query("SELECT * FROM `users` WHERE `email` = '".mysql_real_escape_string($_COOKIE['email'])."' AND `password` = '".mysql_real_escape_string($_COOKIE['password'])."'"); } else { $user = 0; } if (!empty($_POST['email']) AND !empty($_POST['password'])) { // Фильтруем email и пароль $email = mysql_real_escape_string(htmlspecialchars($_POST['email'])); $password = mysql_real_escape_string(htmlspecialchars($_POST['password'])); // проверяем есть ли email в нашей БД if (@mysql_result(mysql_query("SELECT COUNT (*) FROM `users` WHERE `email` = '".$email."' LIMIT 1;"), 0) !=0) { echo 'email занят'; exit(); } // Заносим данные в БД mysql_query("INSERT INTO `users` (`email`, `password`) VALUES ('".$email."', '".md5($password)."')"); echo 'Вы успешно зарегестрированны'; exit(); } if(!$_SESSION['id']) if($_POST['button']){ //Проверяем правильность кода капчи if($_SESSION[secret_number]==""){ $_SESSION[secret_number] = "ABCD"; } if($_SESSION["secret_number"] != $_POST[pkey]){ return exit("<b>Ошибка номера ввода капчи</b>"); } //Запоминаем сессию $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; } ?> Это вход на сайт <?php include_once('/reg/include/config.php'); ?> <?php if(!empty($_POST['email']) AND !empty($_POST['password'])) { // фильтрируем логин и пароль $email = mysql_real_escape_string(htmlspecialchars($_POST['email'])); $password = mysql_real_escape_string(htmlspecialchars($_POST['password'])); $search_user = mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `email` = '".$email."' AND `password` = '".md5($password)."'"), 0); if($search_user == 0) { echo 'Введенные данные неправильные или пользователь не найден.'; exit(); } else { // заносим логин и пароль в куки $time = 60*60*24; // сколько времени хранить данные в куках setcookie('email', $email, time()+$time, '/'); setcookie('password', md5($password), time()+$time, '/'); echo 'Вы успешно авторизировались на сайте!'; exit(); } } ?> а это 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> Подскажите как реализовать буду благодарен вам в помощи. Зарание всем спасибо. |
Профессоры говорят не говори прерывание, а я вам советую тогда не говорить модальное окно.
Нет никаких модальных окон на веб-странице и быть не может. Только немодальные с матерщинным названием - попап. Цитата:
Чтобы показать отчет после аякса надо показать либо заранее загруженный элемент, либо его сгенерить по той же схеме. Запустить таймер который либо сотрет его с экрана, либо уничтожит вовсе. |
Про автологин не понял. После регистрации придется либо перезагрузить страницу чтобы сервер по кукам ее провел, либо послать серверу ответ что куки-таки пришли, для чего прочесть-таки куки, убедиться что это оно и отгрузить. Сервер пометит у себя "зашОл" :)
Ну а чтобы куки пришли их надо отправить заголовками в процессе ответа, или тупо setcookie() |
Понял, это другой кусок, а юзер тот же самый. Нашел получше, но все равно не то и опять какое-то несусветное гэ. :)
Цитата:
И еще раз, пароли и логины в процессе регистрации НЕ санируют. Только проверяют и сообщают о косяках. Юзер должен САМ ввести гигиенически корректные данные. Иначе он затем хрена-то войдет. И уж тем более не санируют при входе. Это вообще голимый бред. То есть два раза: сначала покоцали ввод и записали х знает что, затем это х знает что сравниваем с другим х знает что и ждем результа. |
ну подскажите с чего начать???))) да вот так надо сделать можно пример??
Про автологин не понял. После регистрации придется либо перезагрузить страницу чтобы сервер по кукам ее провел, либо послать серверу ответ что куки-таки пришли, для чего прочесть-таки куки, убедиться что это оно и отгрузить. Сервер пометит у себя "зашОл" Ну а чтобы куки пришли их надо отправить заголовками в процессе ответа, или тупо setcookie() |
Скрипты авторизации дело интимное но общий принцип таков.
Юзер может быть не юзером, а скриптом. Поэтому проверять надо все с начала до конца. Это гемор и легче водрузить его на субд. Например вместо real_escape_string() послать как есть, в кавычках конечно, и получить ошибку в случае если юзер-скрипт послали неудобоваримое. Потому что если послали правильное - оно сразу проканает без проверок в скрипте и не надо думать что логин теперь не совпадет, или пароль покоцали случайно. Например та самая real_escape_string() запросто выкосит кириллицу если коннект не установлен в правильную кодировку. хтмл, если политика не допускает, только проверяется и юзеру доводится политика. Начать надо с бд, с таблицы юзеров. create table users ( user_id int unsigned auto_increment primary key, login varchar(64) not null unique key, pass varchar(255) not null, flag set('guest', 'user', 'admin') ); flag --- как самый элементарный способ завести роли |
Если вы не можете починить натыренный скрипт, значит помочь вам может только другой натыренный скрипт который сразу начнет работать как вам хочется. Больше никто вам не сможет помочь, только вы сами.
Я даже не проверял веря что так просто найти нормальный класс авторизации не будет просто. Короткий обзор показал что теория верна. Находится либо старье, либо слишком тупо, либо невероятно заморочено как тут http://book.cakephp.org/2.0/en/tutor...mple/auth.html |
Регистрация/авторизация аяксом от обычной ничем не отличается. js собирает данные, отгружает, сервер проверяет, отвечает, скрипт доводит до сведения и все такое. Если проканало на сервере заполняются данными переменные юзера, спонтом они с куков загужены, а при следующем обновлении страницы куки загрузятся натурально и все поехало как обычно.
В процитированном скрипте в принципе все необходимое есть, надо только причесать. |
Часовой пояс GMT +3, время: 17:27. |