За последние 24 часа нас посетил 22801 программист и 1273 робота. Сейчас ищут 782 программиста ...

Отправка письма после регистрации

Тема в разделе "PHP для новичков", создана пользователем MIo, 1 июл 2022.

  1. MIo

    MIo Новичок

    С нами с:
    1 июл 2022
    Сообщения:
    5
    Симпатии:
    0
    Добрый день!

    Прошу Вашей помощи в решении задачи, поскольку только начинаю программировать.

    Есть страничка регистрации пользователя singup.php, с ней все в порядке и она корректно работает. Я хочу добавить к ней опцию отправки письма на почту зарегистрировавшегося человека. Но не знаю как сделать выполнение одновременно двух условий.


    Код (Text):
    1. <?php
    2.     require 'db.php';
    3.  
    4.     $data = $_POST;
    5.  
    6.     //если кликнули на button
    7.     if ( isset($data['do_signup']) )
    8.     {
    9.     // проверка формы на пустоту полей
    10.         $errors = array();
    11.         if ( trim($data['login']) == '' )
    12.         {
    13.             $errors[] = '<div style="width: 400px; margin: 0 auto;" class="alert alert-warning" role="alert">Enter login!</div>';
    14.         }
    15.  
    16.         if ( trim($data['email']) == '' )
    17.         {
    18.             $errors[] = '<div style="width: 400px; margin: 0 auto;" class="alert alert-warning" role="alert">Enter Email!</div>';
    19.         }
    20.  
    21.         if ( $data['password'] == '' )
    22.         {
    23.             $errors[] = '<div style="width: 400px; margin: 0 auto;" class="alert alert-warning" role="alert">Enter password!</div>';
    24.         }
    25.  
    26.         if ( $data['password_2'] != $data['password'] )
    27.         {
    28.             $errors[] = '<div style="width: 400px; margin: 0 auto;" class="alert alert-warning" role="alert">The passwords are inconsistent!</div>';
    29.         }
    30.  
    31.         //проверка на существование одинакового логина
    32.         if ( R::count('users', "login = ?", array($data['login'])) > 0)
    33.         {
    34.             $errors[] = '<div style="width: 400px; margin: 0 auto;" class="alert alert-warning" role="alert">User with this login already exists</div>';
    35.         }
    36.    
    37.     //проверка на существование одинакового email
    38.         if ( R::count('users', "email = ?", array($data['email'])) > 0)
    39.         {
    40.             $errors[] = '<div style="width: 400px; margin: 0 auto;" class="alert alert-warning" role="alert">User with this Email already exists</div>';
    41.         }
    42.  
    43.                 if ( empty($errors) )
    44.         {
    45.             //ошибок нет, теперь регистрируем
    46.             $user = R::dispense('users');
    47.             $user->login = $data['login'];
    48.             $user->email = $data['email'];
    49.             $user->password = password_hash($data['password'], PASSWORD_DEFAULT); //пароль нельзя хранить в открытом виде, мы его шифруем при помощи функции password_hash для php > 5.6
    50.             R::store($user);
    51.  
    52.             echo '<div style="width: 400px; margin: 0 auto;" class="alert alert-warning" role="alert">Your account has been created. </div><hr>';
    53.            
    54.             }
    55.        
    56.         else
    57.         {
    58.             echo '<div id="errors" style="color:red;">' .array_shift($errors). '</div><hr>';
    59.         }
    60.  
    61.     }
    62.  
    63. ?>
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    Какая функция отправляет на почту письмо ?
     
  3. MIo

    MIo Новичок

    С нами с:
    1 июл 2022
    Сообщения:
    5
    Симпатии:
    0
    У меня есть вот такой код

    Код (Text):
    1. <?php
    2. $to  = $data['email'] ;
    3. $login = $data['login'];
    4.  
    5. $email = ' <p>Текст письма</p>
    6. </br>
    7. <b>1-ая строчка </b>
    8. </br>
    9. <i>2-ая строчка </i>
    10. </br>';
    11.  
    12. $headers  = "Content-type: text/html; charset=UTF-8 \r\n";
    13. $headers .= "From: CryptoChain.excahnge <from@example.com>\r\n";
    14. $headers .= "Reply-To: reply-to@example.com\r\n";
    15.  
    16. mail($to, $login, $email, $headers);
    17. ?>
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    что в коде ?
     
  5. MIo

    MIo Новичок

    С нами с:
    1 июл 2022
    Сообщения:
    5
    Симпатии:
    0
    отправка письма на почту пользователя.
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    где регистрация пользователя происходит, после добавления записи, почему не можешь "вот такой код" сопоставить ?
     
  7. MIo

    MIo Новичок

    С нами с:
    1 июл 2022
    Сообщения:
    5
    Симпатии:
    0
    Наверно я и пишу на форуме потому, что я не понимаю как их сопоставить.

    Как мне кажется, что отправка должна быть вот тут

    Код (Text):
    1.            //ошибок нет, теперь регистрируем
    2.             $user = R::dispense('users');
    3.             $user->login = $data['login'];
    4.             $user->email = $data['email'];
    5.             $user->password = password_hash($data['password'], PASSWORD_DEFAULT); //пароль нельзя хранить в открытом виде, мы его шифруем при помощи функции password_hash для php > 5.6
    6.             R::store($user);
    7.             echo '<div style="width: 400px; margin: 0 auto;" class="alert alert-warning" role="alert">Your account has been created. </div><hr>';
    8.          
    9.             }
     
  8. MIo

    MIo Новичок

    С нами с:
    1 июл 2022
    Сообщения:
    5
    Симпатии:
    0
    Вопрос решил!
     
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    начни с нуля. Синтаксис изучи. Иначе всегда будешь бегать по форумам, "копировать"
    --- Добавлено ---
    Решил или решила? момент такой..

    2022-07-01_14-33-33.png