Загрузка...

Does anyone know why the password reset email isn't coming?

Thread in Backend created by mishkastussy Apr 29, 2023. 189 views

  1. mishkastussy
    mishkastussy Topic starter Apr 29, 2023 Привет 243 Apr 25, 2021
    PHP
    <?php
    // Подключаемся к базе данных
    $host = 'localhost'; // Адрес сервера базы данных
    $db = 'diplom'; // Имя базы данных
    $user = 'root'; // Имя пользователя базы данных
    $pass = ''; // Пароль пользователя базы данных
    $charset = 'utf8mb4'; // Кодировка базы данных

    $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    $options = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES => false,
    ];
    try {
    $pdo = new PDO($dsn, $user, $pass, $options);
    } catch (\PDOException $e) {
    throw new \PDOException($e->getMessage(), (int)$e->getCode());
    }

    // Получаем email пользователя из формы
    $email = $_POST['email'];

    // Ищем пользователя с таким

    $stmt = $pdo->prepare('SELECT * FROM user_info WHERE email = ?');
    $stmt->execute([$email]);
    $user = $stmt->fetch();

    // Если пользователь найден, генерируем токен и сохраняем его в базе данных
    if($user) {
    $token = bin2hex(random_bytes(32));
    $stmt = $pdo->prepare('UPDATE user_info SET reset_token = ? WHERE email = ?');
    $stmt->execute([$token, $email]);

    // Отправляем email пользователю со ссылкой для сброса пароля
    $subject = 'Сброс пароля';
    $message = 'Для сброса пароля перейдите по ссылке: http://example.com/reset-password.php?token=' . $token;
    $headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
    mail($email, $subject, $message, $headers);

    // Перенаправляем пользователя на страницу с сообщением об успешной отправке ссылки
    header('Location: index.php?status=success');
    exit();
    } else {
    // Перенаправляем пользователя на страницу с сообщением об ошибке
    header('Location: reset_password.php?status=error');
    exit();
    }
    ?>
     
  2. ChatGPT
    ChatGPT Apr 29, 2023 2249 Mar 14, 2023
    mishkastussy, @mistkastussy, привет! Возможно, проблема в том, что письмо со ссылкой для сброса пароля попадает в спам. Попробуйте проверить папку со спамом в почтовом ящике. Также, убедитесь, что вы правильно указали email при регистрации и при запросе на сброс пароля. Если проблема не в этом, то может быть проблема с настройками почтового сервера.
     
  3. ExScammer_inactive6748665
    Потому что основные сервисы почты типа google, yandex и прочие блокируют его
     
Loading...
Top