Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 22.01.2015
Сообщений: 77

Форма регистрации (аякс)

24.01.2015, 18:18. Показов 2957. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите переделать регистрацию на аякс, jQuery

Форма:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<table>
      <form action="/index.php?page=reg" method="POST">
      <tr>
      <td>Логин<font color="red">*</font>:</td>
      <td><input type="text" size="20" name="login" ></td>
      </tr>
      <tr>
      <td>Пароль<font color="red">*</font>:</td>
      <td><input type="password" size="20" maxlength="20" name="password" ></td>
      </tr>
      <tr>
      <td>Подтверждения пароля<font color="red">*</font>:</td>
      <td><input type="password" size="20" maxlength="20" name="password2"></td>
      </tr>
      <tr>
      <td>E-mail<font color="red">*</font>:</td>
      <td><input type="text" size="20" name="email"></td>
      </tr>
       <tr>
      <td>Имя:</td>
      <td><input type="text" size="20" name="name"></td>
      </tr>
      <tr>
      <td>Фамилия:</td>
      <td><input type="text" size="20" name="lastname"></td>
      </tr>
      <tr>
       <td></td>
      <td colspan="2"><br><input type="submit" value="Зарегистроваться..." name="submit" ><br></td>
      </tr>
      </form>
      </table>



Обработчик:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
include_once("../source/mysql/users/bd.php");
 
 
if (isset($_POST['submit'])){
    if(empty($_POST['login']))  {
    echo '<br><font color="red"><img border="0" src="users/img/error.gif" alt="Введите логин"> Введите логин!</font></p>';
} 
elseif (!preg_match("/^\w{3,}$/", $_POST['login'])) {
echo '<br><font color="red"><img border="0" src="users/img/error.gif" alt="В поле "Логин" введены недопустимые символы!">В поле "Логин" введены недопустимые символы! Только буквы, цифры и подчеркивание!</font></p>';
}
elseif(empty($_POST['password'])) {
echo '<br><font color="red"><img border="0" src="users/img/error.gif" alt="Введите пароль !">Введите пароль!</font></p>';
}
elseif (!preg_match("/\A(\w){6,20}\Z/", $_POST['password'])) {
echo '<br><font color="red"><img border="0" src="users/img/error.gif" alt="Пароль слишком короткий!">Пароль слишком короткий! Пароль должен быть не менее 6 символов! </font></p>';
}
elseif(empty($_POST['password2'])) {
echo '<br><font color="red"><img border="0" src="users/img/error.gif" alt="Введите подтверждение пароля!">Введите подтверждение пароля!</font></p>';
}
elseif($_POST['password'] != $_POST['password2']) {
echo '<br><font color="red"><img border="0" src="users/img/error.gif" alt="Введенные пароли не совпадают!">Введенные пароли не совпадают!</font></p>';
}
elseif(empty($_POST['email'])) {
echo '<br><font color="red"><img border="0" src="users/img/error.gif" alt="Введите E-mail!">Введите E-mail! </font></p>';
}
elseif (!preg_match("/^[a-zA-Z0-9_\.\-]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,6}$/", $_POST['email'])) {
echo '<br><font color="red"><img border="0" src="users/img/error.gif" alt="E-mail имеет недопустимий формат!">E-mail имеет недопустимий формат! Например, name@gmail.com! </font></p>';
}
 
else{
$login = $_POST['login'];
$password = $_POST['password'];
$mdPassword = md5($password);
$password2 = $_POST['password2'];
$email = $_POST['email'];
$rdate = date("d-m-Y в H:i");
$name = $_POST['name'];
$lastname = $_POST['lastname'];  
 
$query = ("SELECT id FROM users WHERE login='$login'");
$sql = mysql_query($query) or die(mysql_error());
 
if (mysql_num_rows($sql) > 0) {
echo '<font color="red"><img border="0" src="users/img/error.gif" alt="Пользователь с таким логином зарегистрированый!">Пользователь с таким логином зарегистрирован!</font>';
}
else {
$query2 = ("SELECT id FROM users WHERE email='$email'");
$sql = mysql_query($query2) or die(mysql_error());
if (mysql_num_rows($sql) > 0){
echo '<font color="red"><img border="0" src="users/img/error.gif"  alt="Пользователь с таким e-mail зарегистрированый!">Пользователь с таким e-mail уже зарегистрирован!</font>';
}
else{
$query = "INSERT INTO users (login, password, email, reg_date, name_user, lastname )
VALUES ('$login', '$mdPassword', '$email', '$rdate', '$name', '$lastname')";
$result = mysql_query($query) or die(mysql_error());;
echo '<font color="green"><img border="0" src="users/img/ok.gif"  alt="Вы успешно зарегистрировались!">Вы успешно зарегистрировались!</font><br><a href="index.php">На главную</a>';
}
}
}
}
?>
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.01.2015, 18:18
Ответы с готовыми решениями:

Форма регистрации
Написал регистрацию на сайте, запись в БД добавляется, но на почту письмо не приходит, в чем может быть проблема? Файл index.php: ...

Форма регистрации
Добрый день, уважаемые форумчане. Помогите пожалуйста реализовать следующее... Существует сайт, но особо &quot;умные&quot; люди...

Форма регистрации
&lt;form action=&quot;/account/register/&quot; class=&quot;form-horizontal&quot; method=&quot;post&quot;&gt; &lt;div class=&quot;form-group&quot;&gt; &lt;div...

26
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
24.01.2015, 21:07
При нажатии на кнопку должна вызываться функция, посылающая данные из формы серверу. Назовём её sendForm:
HTML5
1
<input type="submit" onclick="sendForm()" />
Далее привожу пример функции на JS, подредактируйте её под свою задачу:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript">
 
function sendForm(){
 
  $.ajax({
    type: 'POST',
    url: 'response.php', // url, на который посылаем запрос
    data: $('form').serialize(), // в качестве данных передаём заполненные данные из формы с id="form"
    success: function(data){
      ... // Что делаем в случае успешной отправки данных
    }
  });
 
}
</script>
Другие примеры AJAX можно посмотреть тут.
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
24.01.2015, 22:03
index.php
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Регистрация</title>
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
 
<script type="text/javascript">
function registration() {
    var login = $(".login").val();
    var password = $(".password").val();
    var r_password = $(".r_password").val()
    var email = $(".email").val();
    var first_name = $(".first_name").val();
    var last_name = $(".last_name").val();
    $.ajax({
        url: 'registration.php',
        type: 'POST',
        data: {
            login: login,
            password: password,
            r_password: r_password,
            email: email,
            first_name: first_name,
            last_name: last_name
        },
        dataType: 'json',
        success: function(result) {
            if(!result["error"]) {
                $("#result").html('');
            }else{
                $("#result").html(result["e_message"]);
            }
            return false;
        }
    });
}
</script>
 
</head>
<body>
 
<style type="text/css">
* {
    margin: 0;
    padding: 0;
    font-family: "Arial", Helvetica, Sans-Serif;
    outline: none;
}
 
#registration tr,
#registration td {
    padding: 5px;
    border: 1px solid rgba(209,209,209,1);
    background-color: rgba(235,235,235,1);
}
 
#registration td .important {
    color: rgba(255,0,0,1);
}
 
#registration td > input[type="text"],
#registration td > input[type="password"] {
    padding: 2px;
    border: 1px solid rgba(209,209,209,1);
}
 
#registration td > button {
    padding: 5px 9px;
    border: 1px solid rgba(185,185,185,1);
    border-radius: 2px;
    color: rgba(109,109,109,1);
    background-color: rgba(219,219,219,1);
    cursor: pointer;
}
 
#registration td > button:hover {
    color: rgba(35,35,35,1);
    background-color: rgba(209,209,209,1);
}
 
#registration td > span#result {
    float: left;
    margin: 6px;
    color: rgba(255,100,100,1);
    font-size: 13px;
    font-weight: bold;
}
</style>
 
<table id="registration">
    <tr>
        <td>
            <label>Логин: <span class="important">*</span></label>
        </td>
        <td>
            <input type="text" class="login" />
        </td>
    </tr>
    <tr>
        <td>
            <label>Пароль: <span class="important">*</span></label>
        </td>
        <td>
            <input type="password" class="password" />
        </td>
    </tr>
    <tr>
        <td>
            <label>Повторить пароль: <span class="important">*</span></label>
        </td>
        <td>
            <input type="password" class="r_password" />
        </td>
    </tr>
    <tr>
        <td>
            <label>Е-Мейл: <span class="important">*</span></label>
        </td>
        <td>
            <input type="text" class="email" />
        </td>
    </tr>
    <tr>
        <td>
            <label>Имя:</label>
        </td>
        <td>
            <input type="text" class="first_name" />
        </td>
    </tr>
    <tr>
        <td>
            <label>Фамилия:</label>
        </td>
        <td>
            <input type="text" class="last_name" />
        </td>
    </tr>
    <tr>
        <td align="right" colspan="2">
            <span id="result"></span>
            <button name="registration" onclick="registration()">Регистрация</button>
        </td>
    </td>
</table>
 
</body>
</html>
registration.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
 
$result["error"] = false;
$result["e_message"] = '';  
$login = ($_POST["login"]) ? trim($_POST["login"]) : '';
$password = ($_POST["password"]) ? trim($_POST["password"]) : '';
$r_password = ($_POST["r_password"]) ? trim($_POST["r_password"]) : '';
$email = ($_POST["email"]) ? trim($_POST["email"]) : '';
$first_name = ($_POST["first_name"]) ? trim($_POST["first_name"]) : '';
$last_name = ($_POST["last_name"]) ? trim($_POST["last_name"]) : '';
 
if(!empty($login) && !empty($password) && !empty($r_password) && !empty($email)) {
 
}else{
    $result["error"] = true;
    $result["e_message"] = 'Вы не заполнили важные поля!';
}
 
exit(json_encode($result));
1
1 / 1 / 0
Регистрация: 22.01.2015
Сообщений: 77
24.01.2015, 22:37  [ТС]
JimUSA, спасибо, но после нажатия на кнопку регистрации нечего не происходит
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
24.01.2015, 22:43
kilpro_css, В каком смысле?
0
1 / 1 / 0
Регистрация: 22.01.2015
Сообщений: 77
24.01.2015, 22:46  [ТС]
JimUSA, заполняю анкету и нажимаю "регистрация" и ничего не происходит
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
24.01.2015, 23:04
Так нужно код для записи добавить
0
1 / 1 / 0
Регистрация: 22.01.2015
Сообщений: 77
24.01.2015, 23:15  [ТС]
JimUSA,
Этот?
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
include_once("../source/mysql/users/bd.php");
 
if (isset($_POST['submit'])){
    if(empty($_POST['login']))  {
    echo '<br><font color="red"><img border="0" src="error.gif" alt="Введите логин"> Введите логин!</font>';
} 
elseif (!preg_match("/^\w{3,}$/", $_POST['login'])) {
echo '<br><font color="red"><img border="0" src="error.gif" alt="В поле "Логин" введены недопустимые символы!">В поле "Логин" введены недопустимые символы! Только буквы, цифры и подчеркивание!</font>';
}
elseif(empty($_POST['password'])) {
echo '<br><font color="red"><img border="0" src="error.gif" alt="Введите пароль !">Введите пароль!</font>';
}
elseif (!preg_match("/\A(\w){6,20}\Z/", $_POST['password'])) {
echo '<br><font color="red"><img border="0" src="error.gif" alt="Пароль слишком короткий!">Пароль слишком короткий! Пароль должен быть не менее 6 символов! </font>';
}
elseif(empty($_POST['password2'])) {
echo '<br><font color="red"><img border="0" src="error.gif" alt="Введите подтверждение пароля!">Введите подтверждение пароля!</font>';
}
elseif($_POST['password'] != $_POST['password2']) {
echo '<br><font color="red"><img border="0" src="error.gif" alt="Введенные пароли не совпадают!">Введенные пароли не совпадают!</font>';
}
elseif(empty($_POST['email'])) {
echo '<br><font color="red"><img border="0" src="error.gif" alt="Введите E-mail!">Введите E-mail! </font>';
}
elseif (!preg_match("/^[a-zA-Z0-9_\.\-]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,6}$/", $_POST['email'])) {
echo '<br><font color="red"><img border="0" src="error.gif" alt="E-mail имеет недопустимий формат!">E-mail имеет недопустимий формат! Например, name@gmail.com! </font>';
}
 
else{
$login = $_POST['login'];
$password = $_POST['password'];
$mdPassword = md5($password);
$password2 = $_POST['password2'];
$email = $_POST['email'];
$rdate = date("d-m-Y в H:i");
$name = $_POST['name'];
$lastname = $_POST['lastname'];  
 
$query = ("SELECT id FROM users WHERE login='$login'");
$sql = mysql_query($query) or die(mysql_error());
 
if (mysql_num_rows($sql) > 0) {
echo '<font color="red"><img border="0" src="error.gif" alt="Пользователь с таким логином зарегистрированый!">Пользователь с таким логином зарегистрирован!</font>';
}
else {
$query2 = ("SELECT id FROM users WHERE email='$email'");
$sql = mysql_query($query2) or die(mysql_error());
if (mysql_num_rows($sql) > 0){
echo '<font color="red"><img border="0" src="error.gif"  alt="Пользователь с таким e-mail зарегистрированый!">Пользователь с таким e-mail уже зарегистрирован!</font>';
}
else{
$query = "INSERT INTO users (login, password, email, reg_date, name_user, lastname )
VALUES ('$login', '$mdPassword', '$email', '$rdate', '$name', '$lastname')";
$result = mysql_query($query) or die(mysql_error());;
echo '<font color="green"><img border="0" src="ok.gif"  alt="Вы успешно зарегистрировались!">Вы успешно зарегистрировались!</font><br><a href="index.php">На главную</a>';
}
}
}
}
?>
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
24.01.2015, 23:39
Код так себе,
по желанию можете добавить что-то.

Это
JavaScript
1
2
3
4
5
if(!result["error"]) {
    $("#result").html('');
}else{
    $("#result").html(result["e_message"]);
}
замените на
JavaScript
1
2
3
4
5
6
7
8
9
10
11
if(!result["error"]) {
 
    if(result["success"]) {
        $("#registration").html(result["e_message"]);
    }else{
        $("#result").html('');
    }
    
}else{
    $("#result").html(result["e_message"]);
}
и вот registration.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
 
$result["error"] = false;
$result["e_message"] = '';  
$login = ($_POST["login"]) ? trim($_POST["login"]) : '';
$password = ($_POST["password"]) ? trim($_POST["password"]) : '';
$r_password = ($_POST["r_password"]) ? trim($_POST["r_password"]) : '';
$email = ($_POST["email"]) ? trim($_POST["email"]) : '';
$first_name = ($_POST["first_name"]) ? trim($_POST["first_name"]) : '';
$last_name = ($_POST["last_name"]) ? trim($_POST["last_name"]) : '';
 
if(!empty($login) && !empty($password) && !empty($r_password) && !empty($email)) {
 
    if(preg_match('/^([a-zA-Z0-9]{5,19})$/', $login)) {
        
        if($password == $r_password) {
        
            if(preg_match('/^([a-z]+)?([a-z0-9-_\.]+)@([a-z]+)?(.[a-z]{2,5}).([a-z]{2,3})$/', $email)) {
            
                /*
                    Должны быть таблицы в базе login (varchar 35), password (varchar 32), email (varchar 50), first_name (varchar 35), last_name (varchar 35), reg_date (int 11)
                */
                
                $password = md5($password);
                if(mysql_query("INSERT INTO `users`(`login`,`password`,`email`,`first_name`,`last_name`,`reg_date`) VALUES('{$login}', '{$password}', '{$first_name}', '{$last_name}', '" . time() . "')")) {
                    $result["success"] = true;
                    $result["e_message"] = 'Вы успешно зарегистрировались!';
                }
            
            }else{
                $result["error"] = true;
                $result["e_message"] = 'Некоректный е-мейл!';
            }
            
        }else{
            $result["error"] = true;
            $result["e_message"] = 'Пароли не совпадают!';
        }
    
    }else{
        $result["error"] = true;
        $result["e_message"] = 'Некоректный логин или превышен лимит символов!';
    }
 
}else{
    $result["error"] = true;
    $result["e_message"] = 'Вы не заполнили важные поля!';
}
 
exit(json_encode($result));
0
1 / 1 / 0
Регистрация: 22.01.2015
Сообщений: 77
25.01.2015, 00:24  [ТС]
JimUSA, все равно ничего не происходит, вот url http://web.net-cms.ru/main.php
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
25.01.2015, 01:50
Лучший ответ Сообщение было отмечено kilpro_css как решение

Решение

kilpro_css, Перезалейте файл.
Вложения
Тип файла: rar index.rar (2.0 Кб, 10 просмотров)
1
1 / 1 / 0
Регистрация: 22.01.2015
Сообщений: 77
25.01.2015, 02:29  [ТС]
JimUSA, спасибо, проблема была в кодировке, работает только на utf-8

Добавлено через 27 минут
JimUSA, возникла еще одна проблема, я подключаю к бд в registration.php

HTML5
1
include_once("bd.php");
Но при регистрации, пишет "Успешно зарегистрировались!" но в бд данные не заносятся
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
25.01.2015, 03:20
kilpro_css, там строка записи в db закомментирована.
0
1 / 1 / 0
Регистрация: 22.01.2015
Сообщений: 77
25.01.2015, 13:08  [ТС]
JimUSA,
PHP
1
2
3
/*
                    Должны быть таблицы в базе login (varchar 35), password (varchar 32), email (varchar 50), first_name (varchar 35), last_name (varchar 35), reg_date (int 11)
                */
Это?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
25.01.2015, 13:25
В самом файле, который вам скинули.

PHP
1
2
3
4
5
6
7
/*
                $password = md5($password);
                if(mysql_query("INSERT INTO `users`(`login`,`password`,`email`,`first_name`,`last_name`,`reg_date`) VALUES('{$login}', '{$password}', '{$first_name}', '{$last_name}', '" . time() . "')")) {
                    $result["success"] = true;
                    $result["e_message"] = 'Вы успешно зарегистрировались!';
                }
                */
0
1 / 1 / 0
Регистрация: 22.01.2015
Сообщений: 77
25.01.2015, 16:25  [ТС]
помогите сделать обработчик авторизации и форму к нему, вот обработчик регистрации:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?
include_once("bd.php");
 
 
    // получаем переменные через post
    $login = iconv("UTF-8", "Windows-1251", $_POST['login']);
    $imya = iconv("UTF-8", "Windows-1251", $_POST['imya']);
    $familiya = iconv("UTF-8", "Windows-1251", $_POST['familiya']);
    $email = iconv("UTF-8", "Windows-1251", $_POST['email']);
    $god = iconv("UTF-8", "Windows-1251", $_POST['god']);
    $mesyac = iconv("UTF-8", "Windows-1251", $_POST['mesyac']);
    $chislo = iconv("UTF-8", "Windows-1251", $_POST['chislo']);
    $pol = iconv("UTF-8", "Windows-1251", $_POST['pol']);
    $password = iconv("UTF-8", "Windows-1251", $_POST['password']);
 
    // обрезаем пробелы
    $login1 = trim($login);
    $imya1 = trim($imya);
    $familiya1 = trim($familiya);
    $email1 = trim($email);
    $god1 = trim($god);
    $mesyac1 = trim($mesyac);
    $chislo1 = trim($chislo);
    $pol1 = trim($pol);
    $password1 = trim($password);
 
    // Экранируем опасные символы
    $login2 = htmlspecialchars($login1);
    $imya2 = htmlspecialchars($imya1);
    $familiya2 = htmlspecialchars($familiya1);
    $email2 = htmlspecialchars($email1);
    $god2 = htmlspecialchars($god1);
    $mesyac2 = htmlspecialchars($mesyac1);
    $chislo2 = htmlspecialchars($chislo1);
    $pol2 = htmlspecialchars($pol1);
    $password2 = htmlspecialchars($password1);
 
 
    // Проверяем переменные на пустоту
    if($login2 == '') {unset($login2);}
    if($imya2 == '') {unset($imya2);}
    if($familiya2 == '') {unset($familiya2);}
    if($email2 == '') {unset($email2);}
    if($god2 == 'Год') {unset($god2);}
    if($mesyac2 == 'Месяц') {unset($mesyac2);}
    if($chislo2 == 'Число') {unset($chislo2);}
    if($pol2 == 'Пол:') {unset($pol2);}
    if($password2 == '') {unset($password2);}
 
    // Проверка заполненых данных
    if(isset($login2) && isset($imya2) && isset($familiya2) && isset($email2) && isset($god2) && isset($mesyac2) && isset($chislo2) && isset($pol2) && isset($password2)) {
 
       $regexp = '/^[a-z_0-9\-\.]+@[a-z_0-9\-\.]+\.[a-z]{2,6}$/i'; // используем регулярки для проверки email
 
       if (!preg_match($regexp, $email2)) {
       echo '
      <div id="bug">
      <img src="image/error.png" align="left">Пожалуйста введите свой E-mail
      <div style="clear:left;"></div>
      </div><br>';
       }
       else {
       if(strlen($login2) <= 4 OR strlen($imya2) <= 3 OR strlen($familiya2) <= 1 OR strlen($password2) <= 5) {
          echo '
      <div id="bug">
      <img src="image/error.png" align="left">Логин должен состоять больше 4 символов
      <div style="clear:left;"></div>
      </div><br>';
      echo '
      <div id="bug">
      <img src="image/error.png" align="left">Имя должно состоять больше 3 символов
      <div style="clear:left;"></div>
      </div><br>';
       echo '
      <div id="bug">
      <img src="image/error.png" align="left">Фамилия должна состоять больше 1 символов
      <div style="clear:left;"></div>
      </div><br>';
       echo '
      <div id="bug">
      <img src="image/error.png" align="left">Пароль должен быть больше 5 символов
      <div style="clear:left;"></div>
      </div><br>';
       }
       else {
       $users_test = mysql_query ("select * from users where email='$email2'");
        $users_test_row = mysql_fetch_array($users_test);
        if($users_test_row['email'] == $email2) {
              echo '
      <div id="bug">
      <img src="image/error.png" align="left">Уже существует аккаунт, связанный с этим адресом электронной почты.
      <div style="clear:left;"></div>
      </div><br>';
        }
        else {
        $pass_md = md5($pass2);  // обязательно шифруем пароль.
        $add_users = mysql_query ("insert into users (login,imya,familiya,email,god,mesyac,chislo,pol,password) values ('$login2','$imya2','$familiya2','$email2','$god2','$mesyac2','$chislo2','$pol2','$pass_md')");
         if($add_users == 'true') {
           echo '
      <div id="bug">
      <img src="image/111.png" align="left">Регистрация прошла успешно
      <div style="clear:left;"></div>
      </div><br>';
         }
         else {
           echo '
      <div id="bug">
      <img src="image/error.png" align="left">Произошла ошибка
      <div style="clear:left;"></div>
      </div><br>';
         }
         }
       }
       }
 
 
 
 
 
    }
    else {
      echo '
      <div id="bug">
      <img src="image/error.png" align="left">Вы ввели не все данные! <br>Введите все данные !
      <div style="clear:left;"></div>
      </div><br>';
    }
 
?>
0
1 / 1 / 0
Регистрация: 22.01.2015
Сообщений: 77
26.01.2015, 12:07  [ТС]
JimUSA, я поставил такую регистрацию:

Форма:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<style>
::-webkit-input-placeholder {
   color: #bbb;
}
 
:-moz-placeholder {
   color: #bbb;
}                         
 
.placeholder{
    color: #bbb; /* polyfill */
}        
 
#signup input{
    margin: 5px 0;
    padding: 15px;
    width: 100%;
    *width: 518px; /* IE7 and below */
    box-sizing: border-box;
    border: 1px solid #ccc;
    border-radius: 3px;    
}
 
#signup input:focus{
        outline: 0;
        border-color: #aaa;
    box-shadow: 0 2px 1px rgba(0, 0, 0, .3) inset;
}        
 
#signup button{
    margin: 20px 0 0 0;
    padding: 15px 8px;            
    width: 100%;
    cursor: pointer;
    border: 1px solid #2493FF;
    overflow: visible;
    display: inline-block;
    color: #fff;
    font: bold 1.4em arial, helvetica;
    text-shadow: 0 -1px 0 rgba(0,0,0,.4);          
    background-color: #2493ff;
    background-image: linear-gradient(top, rgba(255,255,255,.5), rgba(255,255,255,0)); 
    transition: background-color .2s ease-out;
    border-radius: 3px;
    box-shadow: 0 2px 1px rgba(0, 0, 0, .3), 0 1px 0 rgba(255, 255, 255, .5) inset;                                    
}
 
#signup button:hover{
      background-color: #7cbfff;
        border-color: #7cbfff;
}
 
#signup button:active{
    position: relative;
    top: 3px;
    text-shadow: none;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .3) inset;
}
 
 
 
 
 
</style>
 
 
<script type="text/javascript" src="regis.js"></script>
 
 
<center><form id="signup"><div style="width:545px;">
<input placeholder="Логин" type="text" id="login" size="30"/>
<input placeholder="Имя" type="text" id="imya" size="30"/>
<input placeholder="Фамилия" type="text" id="familiya" size="30"/>
<input placeholder="Email" type="text" id="email" size="30"/><br><br>
<select id="god"><option>Год</option><?php for($i = 1900; $i <= 2000; $i++) { echo '<option value="'.$i.'">'.$i.'</option>';} ?></select>
<select id="mesyac"><option>Месяц</option><?php for($i = 1; $i <= 12; $i++) { echo '<option value="'.$i.'">'.$i.'</option>';} ?></select>
<select id="chislo"><option>Число</option><?php for($i = 1; $i <= 31; $i++) { echo '<option value="'.$i.'">'.$i.'</option>';} ?></select><br />
<br><select id="pol"><option>Пол:</option><option value="Мужской">Мужской</option><option value="Женский">Женский</option></select><br />
<br><input placeholder="Пароль" type="password" id="password" size="30"/><br />
<br>
        <input type="button" value="Регистрация" id="button" onClick="add_users();"/>
    <!-- Картинка загрузки -->
        <br><div id="load1" style="display:none;"><img src="image/load.gif" /></div>
    <!-- Где будеть показана картинка загрузки -->
        <div id="answer"></div></center>
    <!-- В этом блоке будет показан ответ от регистрации -->
        <div id="answer2"></div>
 
        </div></form>
Обработчик:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?
include_once("bd.php");
 
 
    // получаем переменные через post
    $login = iconv("UTF-8", "Windows-1251", $_POST['login']);
    $imya = iconv("UTF-8", "Windows-1251", $_POST['imya']);
    $familiya = iconv("UTF-8", "Windows-1251", $_POST['familiya']);
    $email = iconv("UTF-8", "Windows-1251", $_POST['email']);
    $god = iconv("UTF-8", "Windows-1251", $_POST['god']);
    $mesyac = iconv("UTF-8", "Windows-1251", $_POST['mesyac']);
    $chislo = iconv("UTF-8", "Windows-1251", $_POST['chislo']);
    $pol = iconv("UTF-8", "Windows-1251", $_POST['pol']);
    $password = iconv("UTF-8", "Windows-1251", $_POST['password']);
 
    // обрезаем пробелы
    $login1 = trim($login);
    $imya1 = trim($imya);
    $familiya1 = trim($familiya);
    $email1 = trim($email);
    $god1 = trim($god);
    $mesyac1 = trim($mesyac);
    $chislo1 = trim($chislo);
    $pol1 = trim($pol);
    $password1 = trim($password);
 
    // Экранируем опасные символы
    $login2 = htmlspecialchars($login1);
    $imya2 = htmlspecialchars($imya1);
    $familiya2 = htmlspecialchars($familiya1);
    $email2 = htmlspecialchars($email1);
    $god2 = htmlspecialchars($god1);
    $mesyac2 = htmlspecialchars($mesyac1);
    $chislo2 = htmlspecialchars($chislo1);
    $pol2 = htmlspecialchars($pol1);
    $password2 = htmlspecialchars($password1);
 
 
    // Проверяем переменные на пустоту
    if($login2 == '') {unset($login2);}
    if($imya2 == '') {unset($imya2);}
    if($familiya2 == '') {unset($familiya2);}
    if($email2 == '') {unset($email2);}
    if($god2 == 'Год') {unset($god2);}
    if($mesyac2 == 'Месяц') {unset($mesyac2);}
    if($chislo2 == 'Число') {unset($chislo2);}
    if($pol2 == 'Пол:') {unset($pol2);}
    if($password2 == '') {unset($password2);}
 
    // Проверка заполненых данных
    if(isset($login2) && isset($imya2) && isset($familiya2) && isset($email2) && isset($god2) && isset($mesyac2) && isset($chislo2) && isset($pol2) && isset($password2)) {
 
       $regexp = '/^[a-z_0-9\-\.]+@[a-z_0-9\-\.]+\.[a-z]{2,6}$/i'; // используем регулярки для проверки email
 
       if (!preg_match($regexp, $email2)) {
       echo '
      <div id="bug">
      <img src="image/error.png" align="left">Пожалуйста введите свой E-mail
      <div style="clear:left;"></div>
      </div><br>';
       }
       else {
       if(strlen($login2) <= 4 OR strlen($imya2) <= 3 OR strlen($familiya2) <= 1 OR strlen($password2) <= 5) {
          echo '
      <div id="bug">
      <img src="image/error.png" align="left">Логин должен состоять больше 4 символов
      <div style="clear:left;"></div>
      </div><br>';
      echo '
      <div id="bug">
      <img src="image/error.png" align="left">Имя должно состоять больше 3 символов
      <div style="clear:left;"></div>
      </div><br>';
       echo '
      <div id="bug">
      <img src="image/error.png" align="left">Фамилия должна состоять больше 1 символов
      <div style="clear:left;"></div>
      </div><br>';
       echo '
      <div id="bug">
      <img src="image/error.png" align="left">Пароль должен быть больше 5 символов
      <div style="clear:left;"></div>
      </div><br>';
       }
       else {
       $users_test = mysql_query ("select * from users where email='$email2'");
        $users_test_row = mysql_fetch_array($users_test);
        if($users_test_row['email'] == $email2) {
              echo '
      <div id="bug">
      <img src="image/error.png" align="left">Уже существует аккаунт, связанный с этим адресом электронной почты.
      <div style="clear:left;"></div>
      </div><br>';
        }
        else {
        $pass_md = md5($pass2);  // обязательно шифруем пароль.
        $add_users = mysql_query ("insert into users (login,imya,familiya,email,god,mesyac,chislo,pol,password) values ('$login2','$imya2','$familiya2','$email2','$god2','$mesyac2','$chislo2','$pol2','$pass_md')");
         if($add_users == 'true') {
           echo '
      <div id="bug">
      <img src="image/111.png" align="left">Регистрация прошла успешно
      <div style="clear:left;"></div>
      </div><br>';
         }
         else {
           echo '
      <div id="bug">
      <img src="image/error.png" align="left">Произошла ошибка
      <div style="clear:left;"></div>
      </div><br>';
         }
         }
       }
       }
 
 
 
 
 
    }
    else {
      echo '
      <div id="bug">
      <img src="image/error.png" align="left">Вы ввели не все данные! <br>Введите все данные !
      <div style="clear:left;"></div>
      </div><br>';
    }
 
?>
javascript:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function add_users() {
      //Получаем то что ввел польователь
      var login = document.getElementById('login').value;
      var imya = document.getElementById('imya').value;
      var familiya = document.getElementById('familiya').value;
      var email = document.getElementById('email').value;
      var god = document.getElementById('god').value;
      var mesyac = document.getElementById('mesyac').value;
      var chislo = document.getElementById('chislo').value;
      var pol = document.getElementById('pol').value;
      var password = document.getElementById('password').value;
 
 
      var load1 = document.getElementById('load1');
      var answer = document.getElementById('answer');
      var answer2 = document.getElementById('answer2');
 
       //То что будем отправлять на сервер
      var parameter = 'login='+login+'&imya='+imya+'&familiya='+familiya+'&email='+email+'&god='+god+'&mesyac='+mesyac+'&chislo='+chislo+'&pol='+pol+'&password='+password;
        //Показываем загрузку
       answer.innerHTML = load1.innerHTML;
           //Соединяемься с аяксом
      var network = createRequestObject();
             //Тут мы выбраем метод отправки формы и куда отправляем
            network.open("POST","regis_users.php",true);
            //Кодировка формы у меня она windows-1251
            network.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=windows-1251");
             //Здесь пишим ответ от сервера то что отправить нам сервер в ответ
            network.onreadystatechange = function () {
              if(network.readyState == 4) {answer.innerHTML = ''; answer2.innerHTML = network.responseText;  }
            }
            //Отправлям запрос
             network.send(parameter);
    }
        //Подключаемся к аяксу
        function createRequestObject() {
        try { return new XMLHttpRequest() }
        catch(e) {
            try { return new ActiveXObject('Msxml2.XMLHTTP') }
            catch(e) {
                try { return new ActiveXObject('Microsoft.XMLHTTP') }
                catch(e) { return null; }
            }
        }
    }

но теперь не могу авторизоваться после регистрации, регистрация отлично работает

Обработчик авторизации:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
    session_start();//  вся процедура работает на сессиях. Именно в ней хранятся данные  пользователя, пока он находится на сайте. Очень важно запустить их в  самом начале странички!!!
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
    //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
    {
    exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
    }
    //если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
$password = stripslashes($password);
    $password = htmlspecialchars($password);
//удаляем лишние пробелы
    $login = trim($login);
    $password = trim($password);
// подключаемся к базе
    include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь 
 
$result = mysql_query("SELECT * FROM users WHERE login='$login'",$db); //извлекаем из базы все данные о пользователе с введенным логином
    $myrow = mysql_fetch_array($result);
    if (empty($myrow['password']))
    {
    //если пользователя с введенным логином не существует
    exit ("Извините, введённый вами login или пароль неверный.");
    }
    else {
    //если существует, то сверяем пароли
    if ($myrow['password']==$password) {
    //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
    $_SESSION['login']=$myrow['login']; 
    $_SESSION['id']=$myrow['id'];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
    echo "Вы успешно вошли на сайт! <a href='index.php'>Главная страница</a>";
    }
 else {
    //если пароли не сошлись
 
    exit ("Извините, введённый вами login или пароль неверный.");
    }
    }
    ?>
Форма:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
if(empty($login) and empty($password)){
print <<<HERE
<table>
Вход:
<br>
<br>
 
      <form action="/users/login.php" method="POST">
      <tr>
      <td>Логин:</td>
      <td><input type="text" name="login" ></td>
      </tr>
      
      <tr>
      <td>Пароль:</td>
      <td><input type="password" name="password" ></td>
      </tr>
      
      <tr>
      <td colspan="2"><input type="submit" value="OK" name="submit" ></td>
      </tr>
      </form>
      </table>
<a href="registration.php">Регистрация</a>
HERE;
}
else{
echo "Привет, <strong>".$login."</strong> | <a href='/users/exit.php'>Выход</a><br>Контент для зарегистрированных пользователей";
}
?>
пишет: Извините, введённый вами логин или пароль неверный.
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
26.01.2015, 12:15
У вас в
PHP
1
md5()
не та переменная.
0
1 / 1 / 0
Регистрация: 22.01.2015
Сообщений: 77
26.01.2015, 12:45  [ТС]
JimUSA, в какой строке нужно редактировать?
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
26.01.2015, 12:48
kilpro_css, Файл регистрации сравните строку 36 и 96
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.01.2015, 12:48
Помогаю со студенческими работами здесь

Форма регистрации аватара
Где можно найти работающую форму регистрации с добавлением аватара и со входом на сайт желательно с исходниками

Простейшая форма регистрации и авторизации
Вот, дали задание написать, по образцу форму авторизации и регистрации &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0...

Не работает форма регистрации пользователей
Пытаюсь разобраться в форме для регистрации, вот тут обсуждалось https://www.cyberforum.ru/php-database/thread643852.html В итоге...

Форма регистрации
помогите вывести такие php коды для этой формы регистрации к примеру вот: http://battle.net.kg/register Вот коды &lt;div...

Форма регистрации
&lt;label for=&quot;comp&quot;&gt;Компетенция&lt;/label&gt; &lt;?php mysql_query(&quot;SET NAMES utf8&quot;); $res= mysql_query(&quot;SELECT *...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru