注销时发送的电子邮件

时间:2017-07-18 10:55:41

标签: php email mysqli

我在我的简单网站上有一个用户登录/注册系统一切都很好但我希望有一个功能,当点击退出按钮时,会向用户发送一般信息。可能会说类似的事情,请发送电子邮件给我们,告知我们在我们网站上的调查结果。

该网站是一家娱乐机构,可以预订嘉年华设备,注册和登录仅供用户查看价格,如果他们对实际产品感兴趣。

我不知道在哪里或如何实现这样的事情。

我的理解是我必须为从电子邮件列请求电子邮件的数据库创建一个查询,如果存在用户电子邮件地址,则继续发送电子邮件(如果他们在注销点,则表示电子邮件地址在数据库中可用)然后一旦将日志用户发送出去并重定向到页面。我只是不知道如何准确地进行查询。

任何建议都将不胜感激

ps,我不知道你需要看什么文件才能看到我做了什么?

这是我的退出页面:

<?php
require_once 'db.php';
session_start();

if (isset($_SESSION['username']) && !empty($_SESSION['username'])):
    if (isset($_GET['action']) && !empty($_GET['action'])) {

        $action = $_GET['action'];

        if ($action == "logout") {
            $stmt  = $pdo->prepare("SELECT email FROM users WHERE email = ? ");
            $stmt->execute([$_SESSION['username']]);
            $email = $stmt->fetchColumn();

            $message = "Hellow you just used our website....";

            if (mail($email, "Feedback", $message)) {
                // the email is sent now log the user out.
                session_destroy();
                header("location:login_page.php");
                exit();
            }

        }

    }
endif;
?>

2 个答案:

答案 0 :(得分:0)

您可以按照以下步骤完成此操作 步骤1: 用户登录时,将其电子邮件ID保存在user page中。即当登录ios成功时,你必须发送一些&#34;成功&#34;响应并重定向到login.php。因此,在此之前,如果登录成功,则创建会话并将电子邮件ID存储在其中。 <?php session_start(); //Some database actions... if($login == "success"){ // Just an example $_SESSION["email"] = $EMAIL // This is the user Email Address. } ?>

logout

第2步:

当用户退出时,必须将其重定向到您销毁所有会话的logout.php页面。您必须在该功能中调用触发邮件功能。 在<?php session_start(); $EMAIL = $_SESSION["email"] // Get the previously saved email in login process. triggerMail($EMAIL); session_unset(); session_destroy(); header("location:home.php"); exit(); function triggerMail($email){ //Your email logic.. return either true or false. } ?>

context.HttpContext.Response.SuppressFormsAuthenticationRedirect = true;

答案 1 :(得分:0)

当用户成功登录时,如果他们使用他们的电子邮件地址登录,则将该电子邮件地址存储在会话中。然后在销毁之前退出会话时,将电子邮件发送到会话中存储的电子邮件。

然后有一个这样的退出链接:

<a href="logoutpage.php?action=logout">Logout</a>

然后,如果用户想要注销,您可以验证该注销页面上的操作。

<?php
session_start();
if (isset($_SESSION['currentUser']) && !empty($_SESSION['currentUser'])):

    if (isset($_GET['action']) && !empty($_GET['action'])) {

        $action = $_GET['action'];

        if ($action == "logout") {
            $message = "Hellow you just used our website.... what ever you want to write";

            if (mail($_SESSION['currentUser'], "Feedback", $message)) {
                // the email is sent now log the user out.
                session_destroy();
                header("location:loginPage.php");
                exit();
            }

        }

    }
endif;
?>
  

注意:$_SESSION['currentUser']是你创建的会话   用户正在记录并存储他们的电子邮件。

如果您不使用电子邮件地址作为登录用户名,那么您可以在用户登录之前查询电子邮件地址。然后发送电子邮件然后注销。

<?php
session_start();

if (isset($_SESSION['currentUser']) && !empty($_SESSION['currentUser'])):
    if (isset($_GET['action']) && !empty($_GET['action'])) {

        $action = $_GET['action'];

        if ($action == "logout") {
            $stmt  = $dbh->prepare("SELECT email FROM users WHERE userID = ? ");
            $stmt->execute([$_SESSION['currentUser']]);
            $email = $stmt->fetchColumn();

            $message = "Hellow you just used our website....";

            if (mail($email, "Feedback", $message)) {
                // the email is sent now log the user out.
                session_destroy();
                header("location:loginPage.php");
                exit();
            }

        }

    }
endif;
?>

我&#39;我没有退出你确定使用MYSQLI或PDO的API,因为你没有在你的问题上指定太多,上面使用PDO。