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

Форма регистрации

30.01.2019, 00:01. Показов 1435. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал регистрацию на сайте, запись в БД добавляется, но на почту письмо не приходит, в чем может быть проблема? Файл index.php:
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
<form style="padding-top:200px">
<input type="text" class="login__input" name="login" id="login" placeholder="Username" required pattern="^[a-zA-Z0-9-_\.]{5,20}$" title="LOGIN can consist of 5 (five) to 20 (twenty) characters from: English characters (lower case), numbers and signs - (dot), (dash), (bottom_incident)" autocomplete="off">
<input type="email" class="login__input" name="email" id="email" placeholder="Email" required>
<input type="button" name="reg" id="registration"  value="Register" onclick="CheckForm();">
<input type="password" class="login__input" name="password" id="password" placeholder="Password" required pattern="(?=(.*[0-9]))(?=.*[a-zа-я])(?=(.*[A-ZА-Я]))(?=(.*)).{6,20}" title="The password can consist of 6 (six) to 20 (twenty) characters, you must have at least one digit, one capital letter, one small letter">
<input type="password" class="login__input" name="password2" id="password2" placeholder="Repeat Password" required pattern="(?=(.*[0-9]))(?=.*[a-zа-я])(?=(.*[A-ZА-Я]))(?=(.*)).{6,20}" title="The password can consist of 6 (six) to 20 (twenty) characters, you must have at least one digit, one capital letter, one small letter">
</form>             
</div>
 
 
<script>
        function CheckForm(){
            var pass1 = document.forms[0].password.value;
            var pass2 = document.forms[0].password2.value;
            var login = document.forms[0].login.value;
            var email = document.forms[0].email.value;
            if (!(document.getElementById('login').checkValidity())){
                $('.alert').css('background','red');
                Alert_Opoveshenie('Login is incorrect!');
                return false    
            }
            if (!(document.getElementById('email').checkValidity())){
                $('.alert').css('background','red');
                Alert_Opoveshenie('E-mail is incorrect!');
                return false    
            }
            if (!(document.getElementById('password').checkValidity())){
                $('.alert').css('background','red');
                Alert_Opoveshenie('Password №1 is incorrect!');
                return false    
            }
            if (!(document.getElementById('password2').checkValidity())){
                $('.alert').css('background','red');
                Alert_Opoveshenie('Password №2 is incorrect!');
                return false    
            }
            if (pass1 != pass2) {
                $('.alert').css('background','red');
                Alert_Opoveshenie('Password mismatch!');
                return false
            }
 
 
            $.ajax({
                url: 'Registration.php',
                type: 'POST',
                data: {login:login, password:pass1, email:email},
                success: function(res){
                    if (res.color=='green'){
                        document.location.href = "http://www.effmining.com/";
                        return true
                    }
                    else{
                        $('.alert').css('background',res.color);
                        Alert_Opoveshenie(res.message);
                        return false
                    }
                },
                error: function(){
                    $('.alert').css('background','red');
                    Alert_Opoveshenie('Error!');
                    return false
                }
            });
        }
 
 
 
function Alert_Opoveshenie(Text){
  document.getElementById("alert").innerHTML = Text;
  $('.alert').animate({
    bottom: '10px',
    opacity: '1'
  },1000,function(){
// После показа убираем его
    var alertHide = setInterval(function(){
      $('.alert').animate({
        bottom: '-100%',
        opacity: '0'
      },1000);
      clearInterval(alertHide);
    },2000); // Время "жизни" алерта 2 секунды.
  });
}
</script>
<div class="alert" id="alert">Оповещение</div>
Файл 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
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
<?php
    ini_set('display_errors',1);
    error_reporting('E_ALL');
 
 
 
            //SETTINGS//
            $server_bot = 'smtp.gmail.com';
            $password_bot = 'xxxxxxxx';
            $mail_bot = 'xxxx';
            $name_bot = 'xxxxxx';
            $title = 'Confirmation of registration on xxxxxxx';
            $mess = 'In order to continue registration, click on the link:';
            $mess1 = 'If you did not register on this site, then just ignore this email.';
            //SETTINGS//
 
            include_once('db.php');
            include_once('inc.class.php');//Различные классы и функции для упрощения работы
 
            $SETTINGS = new SETTINGS();//////////////////////////////START_SETTINGS_CLASS////////////////////
            $FORM = new FORM();//////////////////////////////////////START_FORM_CLASS////////////////////////
            $AUTH = new AUTH();//////////////////////////////////////START_AUTH_CLASS////////////////////////
 
            // Присваивание переменных из предыдущей формы
            $login = htmlspecialchars($_POST['login']);
            $password = htmlspecialchars($_POST['password']);
            $mail = htmlspecialchars($_POST['email']);
            $tm = time();
            $password = password_hash($password, PASSWORD_DEFAULT);
            //Закончил присваивать 
 
            //Вычисление количества записей  в БД с принятыми Логином и Емэйлом 
            $querylogin=$mysqli->query("SELECT * FROM `users` WHERE login='".$login."'");
            $numrowlogin = $querylogin->num_rows;
 
 
            $queryemail=$mysqli->query("SELECT * FROM `users` WHERE mail='".$mail."'");
            $numrowemail = $queryemail->num_rows;
            //Закончил вычислять    
 
            //Всё для бота отправки сообщ
            $mail_class = new EMAIL($email_bot); //Создаём экземпляр класса
            $mail_class->setFromName($name_bot); //Устанавливаем имя в обратном адресеc
            $mailSMTP = new SMTP_EMAIL($server_bot, $mail_bot, $password_bot, $name_bot, 465); // создаем экземпляр класса
            $headers = "MIME-Version: 1.0\r\n";
            $headers .= "Content-type: text/html; charset=utf-8\r\n"; // кодировка письма
            $headers .= "From: ".$name_bot." <".$mail_bot." >\r\n"; // от кого письмо
 
            //Проверки на уникальность и добавление в БД
            if ($numrowlogin==0){
                if ($numrowemail==0){
 
                    if($mysqli->query("INSERT INTO `users` (`login`, `password`, `mail`, `status`) VALUES ('$login', '$password', '$mail', 'false')")){
 
 
                        $valid_sql = $mysqli->query("SELECT `id` FROM `user` WHERE login='".$login."'");    
                        $valid_row = $valid_sql->fetch_assoc();
                        $id_act = $valid_row["id"];
                        $messageEmail = $mess." <a href=http://effmining.com/activate.php?login=".$login."&id_act=".$id_act.">link</a> ".$mess1;
                        if ($resultEmail = mail($mail, $title, $messageEmail, $headers)){
                            $message = 'You win!';
                            $color = 'green';
                            $out = array(
                                'message' => $message,
                                'color' => $color
                            );
 
                            header('Content-Type: text/json; charset=utf-8');
                            echo json_encode($out);
                            die;
                        }
                    }
                    else {
                        $message = "Failed to insert data information!";
                        $color = 'red';
                        $out = array(
                            'message' => $message,
                            'color' => $color
                        );
 
                        header('Content-Type: text/json; charset=utf-8');
                        echo json_encode($out);
                        die;
                    }
                }   
                else {
                    $message = "That Email already exists! Please try another one!";
                    $color = 'red';
                    $out = array(
                        'message' => $message,
                        'color' => $color
                    );
 
                    header('Content-Type: text/json; charset=utf-8');
                    echo json_encode($out);
                    die;
                }
            }
            else {
                $message = "That Login already exists! Please try another one!";
                $color = 'red';
                $out = array(
                    'message' => $message,
                    'color' => $color
                );
 
                header('Content-Type: text/json; charset=utf-8');
                echo json_encode($out);
                die;
            }
 
?>
Класс SMTP_EMAIL
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
class SMTP_EMAIL {
    /**
    *
    * @var string $smtp_username - логин
    * @var string $smtp_password - пароль
    * @var string $smtp_host - хост
    * @var string $smtp_from - от кого
    * @var integer $smtp_port - порт
    * @var string $smtp_charset - кодировка
    *
    */
    public $smtp_username;
    public $smtp_password;
    public $smtp_host;
    public $smtp_from;
    public $smtp_port;
    public $smtp_charset;
 
    public function __construct($smtp_host, $smtp_username, $smtp_password, $smtp_from, $smtp_port = 465, $smtp_charset = "utf-8") {
        $this->smtp_username = $smtp_username;
        $this->smtp_password = $smtp_password;
        $this->smtp_host = $smtp_host;
        $this->smtp_from = $smtp_from;
        $this->smtp_port = $smtp_port;
        $this->smtp_charset = $smtp_charset;
    }
    /**
    * Отправка письма
    *
    * @param string $mailTo - получатель письма
    * @param string $subject - тема письма
    * @param string $message - тело письма
    * @param string $headers - заголовки письма
    *
    * @return bool|string В случаи отправки вернет true, иначе текст ошибки *
    */
    function send($mailTo, $subject, $message, $headers) {
        $contentMail = "Date: " . date("D, d M Y H:i:s") . " UT\r\n";
        $contentMail .= 'Subject: =?' . $this->smtp_charset . '?B?' . base64_encode($subject) . "=?=\r\n";
        $contentMail .= $headers . "\r\n";
        $contentMail .= $message . "\r\n";
        try {
            if(!$socket = @fsockopen($this->smtp_host, $this->smtp_port, $errorNumber, $errorDescription, 30)){
                throw new Exception($errorNumber.".".$errorDescription);
            }
            if (!$this->_parseServer($socket, "220")){
                throw new Exception('Connection error');
                echo "123";
            }
            fputs($socket, "EHLO " . $this->smtp_host . "\r\n");
            if (!$this->_parseServer($socket, "250")) {
                fclose($socket);
                throw new Exception('Error of command sending: HELO');
                echo "123";
 
            }
 
            fputs($socket, "AUTH LOGIN\r\n");
            if (!$this->_parseServer($socket, "334")) {
                fclose($socket);
                throw new Exception('Autorization error1');
                    echo "123";
            }
            fputs($socket, base64_encode($this->smtp_username) . "\r\n");
            if (!$this->_parseServer($socket, "334")) {
                fclose($socket);
                throw new Exception('Autorization error2');
                    echo "123";
            }
            fputs($socket, base64_encode($this->smtp_password) . "\r\n");
            if (!$this->_parseServer($socket, "235")) {
                fclose($socket);
                throw new Exception('Autorization error3');
                    echo "123";
            }
            fputs($socket, "MAIL FROM: ".$this->smtp_username."\r\n");
            if (!$this->_parseServer($socket, "250")) {
                fclose($socket);
                throw new Exception('Error of command sending: MAIL FROM');
                    echo "123";
            }
            fputs($socket, "RCPT TO: " . $mailTo . "\r\n");
            if (!$this->_parseServer($socket, "250")) {
                fclose($socket);
                throw new Exception('Error of command sending: RCPT TO');
                    echo "123";
            }
            fputs($socket, "DATA\r\n");
            if (!$this->_parseServer($socket, "354")) {
                fclose($socket);
                throw new Exception('Error of command sending: DATA');
            }
            fputs($socket, $contentMail."\r\n.\r\n");
            if (!$this->_parseServer($socket, "250")) {
                fclose($socket);
                throw new Exception("E-mail didn't sent");
                    echo "123";
            }
            fputs($socket, "QUIT\r\n");
            fclose($socket);
        } catch (Exception $e) {
            return $e->getMessage();
        }
        return true;
    }
    private function _parseServer($socket, $response) {
        while (@substr($responseServer, 3, 1) != ' ') {
            if (!($responseServer = fgets($socket, 256))) {
                return false;
            }
        }
            if (!(substr($responseServer, 0, 3) == $response)) {
                return false;
            }
            return true;
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.01.2019, 00:01
Ответы с готовыми решениями:

Форма регистрации
&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...

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

Форма регистрации (аякс)
помогите переделать регистрацию на аякс, jQuery Форма: &lt;table&gt; &lt;form action=&quot;/index.php?page=reg&quot;...

1
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 49
30.01.2019, 13:36  [ТС]
Может кто помочь?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.01.2019, 13:36
Помогаю со студенческими работами здесь

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

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

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

форма регистрации
начал учить php такое вот задание нам дали сделать форму регистрации выдаёт ошибку на 16 линии почему? вот начал писать &lt;html&gt;...

форма регистрации
Господа программисты! опишите плиз подробнее как работает этот код? &lt;input type=&quot;text&quot; name=&quot;name&quot;...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru