PHP & MySQLを介してログインしたユーザーに通知するプログラムを作成しようとしています。LogginのPHPへの電子メール通知
私は試みましたが、ユーザーがログインしたときにログインしていませんでした。
電子メール通知がユーザーによって選択されました。ユーザーが「はい」を選択した場合は、通知する必要があります。
そしてyes
私が試しに設定されているテストされている、そこからユーザー:
signin.php
<?php
session_start();
require_once 'class.user.php';
$user_login = new USER();
if($user_login->is_logged_in()!="")
{
$user_login->redirect($web.$_SESSION['user_name']);
}
if(isset($_POST['btn-login']))
{
$uname = trim($_POST['txtuname']);
$upass = trim($_POST['txtupass']);
if($user_login->login($uname,$upass))
{
$message = "
Hello $uname,<br />
<p>You are Logged in!
<br /><br />
Thanks:)";
$subject = "Notifier";
$user_login->send_mail($email,$message,$subject);
$user_login->redirect($uname);
}
}
?>
class.user.php
public function login($uname,$upass)
{
try
{
$stmt = $this->conn->prepare("SELECT * FROM tbl_users WHERE userName=:username");
$stmt->execute(array(":username"=>$uname));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() == 1)
{
if($userRow['userStatus']=="Y")
{
if($userRow['userAccess']=="Y")
{
if($userRow['userPass']==md5($upass))
{
if($userRow['userNotify']=="Y")
{
return true;
}
$_SESSION['userSession'] = $userRow['userID'];
$_SESSION['loggedin_time'] = time();
$_SESSION['user_name'] = $userRow['userName'];
return true;
}
else
{
header("Location: signin.php?error");
exit;
}
}
else
{
header("Location: default.php");
exit;
}
}
else
{
header("Location: inactive.php");
exit;
}
}
else
{
header("Location: signin.php?error");
exit;
}
}
catch(PDOException $ex)
{
echo $ex->getMessage();
}
}
function send_mail($email,$message,$subject)
{
require_once('mailer/class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->AddAddress($email);
$mail->Username="[email protected]";
$mail->Password="password";
$mail->SetFrom('[email protected]','Name');
$mail->AddReplyTo("[email protected]","Name");
$mail->Subject = $subject;
$mail->MsgHTML($message);
$mail->Send();
}
電子メール通知がユーザーによって選択されています。ユーザーが「はい」を選択した場合は、通知する必要があります。
これは私がこれを正しく持っている場合、ログインアクションは関係なく、常に利用者の選択のか(資格情報が一致し、他のすべてが正しいと仮定すると、当然のことながら)true
を返します
if($userRow['userNotify']=="Y")
{
return true;
}
私は、ユーザー名が一意の値であると思いますので、2と同じユーザ名がデータベースに格納されている場合、あなたが持って将来にエラーがあるあなたの意志がないアクティブ良い人、だから私は一般的な電子メールは一意であるか、またはIDはあなたがチェックしなければならないユニークなものです。または電子メールとユーザー名がユーザー名を使用するよりも関連性が高い節の中のカップル。よろしく。 –
@headmax 'userName'と' userEmail' botは一意です...重複する値はありません –
'$ email'がどこに設定されているのかわかりません。 –