2017-07-18 1 views
-2

私のシンプルなサイトにユーザーログイン/登録システムがありますが、すべてうまくいきますが、ログアウトボタンをクリックしたときにユーザーに一般メールを送信する機能があります。おそらく何かを言ってください私たちのサイト上であなたの調査結果に関する電子メールを送信してください。ログアウトしたときに送信されるメール

このサイトはカーニバル機器を予約するエンターテイメントエージェンシーであり、登録とログインは純粋にユーザーが実際の商品に関心を持つ場合には価格を表示するためのものです。

このようなものを実装する場所や方法はわかりません。

私は電子メールの列から電子メールを要求するデータベースにクエリを作成しなければならず、ユーザーの電子メールアドレスが存在する場合は電子メールの送信を続行します(ログアウトの時点で電子メールアドレスがデータベースで利用可能である場合)一旦それが送信されると、ユーザーをログアウトしてページにリダイレクトします。私はちょうど正確にクエリを行う方法を知らない。

何かアドバイスは非常に

PSをいただければ幸い、私はあなたが私が行っているものを見るために見る必要があるだろうかドキュメント分からないのですか?

これは私のログアウトページです:あなたはその ステップ1を達成するには、以下の手順に従うことができ

<?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; 
?> 
+1

まあ、ユーザーログイン後にセッション変数に(電子メール、名前など)などのユーザーの情報を保存する必要があると思います。ログインして、そのセッション変数の情報を保存し、それをどこでも使用してください。 – kikemnzz

+0

コアのPHPやMVCフレームワークで作業していますか? – GYaN

答えて

0

: ユーザがログインすると、sessionに彼の電子メールIDを保存します。私はログインが正常に終了したら、 "成功"応答を送信してuser pageにリダイレクトする必要があります。その前に、ログインが成功した場合は、セッションを作成してその中に電子メールIDを保存してください。 login.php

<?php 
session_start(); 
//Some database actions... 

if($login == "success"){ // Just an example 
    $_SESSION["email"] = $EMAIL // This is the user Email Address. 
} 

?> 

ステップ2:ユーザーがログアウトすると

、彼はあなたがすべてのsessions.You'llがその関数でトリガメール機能を呼び出す必要が破壊logoutページにリダイレクトする必要があります。 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. 

} 
?> 
+0

@kikemnzzアドバイスをいただきありがとうございます。私はその理論を覚えていただけでした。 –

+0

ありがとう、私はあなたの提案を私の現在のログインページに実装し、その後ログアウトのステップを行い、うまくいけば私はそれを正しく行うでしょう。 –

0

ユーザーに成功したログの中に、彼らはセッションにそのメールアドレスを格納し、次にログインする自分のメールアドレスを使用している場合には 。セッションを破棄する前にログアウトすると、そのセッションに格納されている電子メールに電子メールが送信されます。

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

が、あなたはそのlogoutpage場合、ユーザたいログアウトのアクションを確認できます。

は、このようなログアウト・リンクを持っています。

<?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; 
?> 

NB:$_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; 
?> 

私はあなたがあなたの質問にあまりを指定しなかったとして、あなたはmysqliのを使用してか、PDOされているAPIわから終了しないでM」、上記のPDOを使用しています。

+0

私はPDOを使用していますが、私は何をしようとしていたのか説明する方法を理解できていないので、何を提供するのか分かりませんでした –

+0

なぜ$ _GETを使用しているのですか?どうして私の人がgetを安全でなく、$ _POSTを代わりに使うべきだと言っているのかを私はどこでも尋ねています。ごめんなさい。 –

+0

私はこのエラーが発生します。警告:mail():コードを実行すると、php.iniに "sendmail_from"が設定されていないか、D:\ xamp \ htdocs \ test \ logout.php行17にカスタム "From:上記のヘルプスクリプト。私は現在の詳細 –

関連する問題