Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
php & jquery post
#1
Ответ
#2
Код:
$("#submit_form").click(function()

Наверное так:

Код:
$(document).on('submit', '#submit_form', function(e) {
    e.preventDefault();
    
    $.post('account.php', $(this).serialize(), function(response) {
        $('#result').html(response);
    });
});

А что там с регуляркой я не знаю, не описали, как должно быть, а что получаете.
Ответ
#3
Должно быть так: открывается бок - > юзер вводит данные -> жмет кнопку отправить -> в этом же боксе виден результат о ходе операции.

Если убрать проверку на вводимые символы оно работает, с проверкой нет. я хз.

PHP код:
<?php 
//get username and password info from the form, protecting against SQL injection
$user = mysql_real_escape_string($_POST["name"]);
$pass = mysql_real_escape_string($_POST["pass"]);
$confirm = mysql_real_escape_string($_POST["confirm"]);

//validate user input
if(!preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/",$user)) {
die (
'Ошибка: Имя пользователя может содержать только алфавитно-цифровые символы и должны быть между 5 и 20 символов в длину.');
}

if(!
preg_match("/^[a-zA-Z0-9]{5,20}$/",$pass)) {
die (
'Ошибка: Пароль пользователя может содержать только алфавитно-цифровые символы и должны быть между 5 и 20 символов в длину.');
}

if(
$pass != $confirm) {
die (
'Ошибка: Пароли не совпадают.');
}

//make sure user doesn't already exist and if it doesn't, add new record to the database
$result = mysql_query("SELECT login FROM accounts WHERE login='$user'");

if(
mysql_num_rows($result)>0) {
die (
'Ошибка: Имя пользователя уже существует.');

p.s.

Под боксом имею ввиду всплывающее окно.
Ответ
#4
wasd;407329 Написал:Если убрать проверку на вводимые символы оно работает, с проверкой нет. я хз.

Можете описать, что разрешено для вводимого? По виду там вообще в name только email должен был быть вписан. Но она не рабочая для определения email.
Ответ
#5
PROGRAMMATOR Написал:Можете описать, что разрешено для вводимого? По виду там вообще в name только email должен был быть вписан. Но она не рабочая для определения email.
Проверял другие значения.

Допустим тоже самое = [a-zA-Z0-9]{5,20}
Ответ
#6
[Изображение: GFcn4.png]

А вообще, если проверяете юникод, то добавьте модификатор U.
И пароли проверять можно на сложность, на длину, но не на вводимые символы. Сохранять вам все равно его хеш.
Ответ
#7
Сложна ...
Ответ
#8
wasd Написал:Хай.

Есть форма передающая данные логин,пароль. Так же в этом скрипте происходит проверка доступных символов. Вот только с ней что то не так. Подскажите пж.

PHP код:
<?php 
<form name="reg"> UserID: <input type="text" id="name" name="name" size=20><br><br> Password: <input type="password" id="pass" name="pass" size=20><br><br> Confirm Password: <input type="password" id="confirm" name="confirm" size=20><br><br> <button id="submit_form">Отправить</button> </form> <div id="result"></div>
<
script type="text/javascript">

$(
document).ready(function(){
$(
"#submit_form").click(function(){ //при клике на кнопку <button id="submit_form">Отправить</button> выполняем функцию
$.post("account.php", $("#name","#pass","#confirm").serialize(), function(response) { //здесь #form_id - это ID формы, которая будет отправляться
$("#result").html(response); //вывод ответа от php-скрипта в <div id="result"></div>
});
return
false;
});
});

</
script>
PHP код:
<?php 
<form id="reg" action="action" method="post"> UserID: <input type="text" id="name" name="name" size=20><br><br> Password: <input type="password" id="pass" name="pass" size=20><br><br> Confirm Password: <input type="password" id="confirm" name="confirm" size=20><br><br> <button id="submit_form">Отправить</button> </form> <div id="result"></div>
<
script type="text/javascript">
$(function() {
$(
'#reg').submit(function(e) {
e.preventDefault();
var
m_method = $(this).attr('method');
var
m_action = $(this).attr('action');
var
m_data = $(this).serialize();
$.
ajax({
type: m_method,
url: m_action,
data: m_data,
success: function(result) {

$(
'#result').html(result);
console.log(result);

}
});
});
});</
script>
попробуй так.
Ответ
#9
Dambenok, форма не отправится. У кнопки не проставлен тип submit.
Ответ
#10
Dambenok, йоу, воркает Smile.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  php POST Blast 8 2,677 11-18-2011, 06:01 PM
Последний пост: PROGRAMMATOR

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)