Php 当有人登录mysql时如何发送电子邮件
如果有人登录了数据库,我想给我发封电子邮件。下面是我的连接和登录配置Php 当有人登录mysql时如何发送电子邮件,php,mysql,Php,Mysql,如果有人登录了数据库,我想给我发封电子邮件。下面是我的连接和登录配置 <?php session_start(); require_once('connect.php'); // Retrieve username and password from database according to user's input $input_username = mysql_real_escape_string($_POST['username']);
<?php
session_start();
require_once('connect.php');
// Retrieve username and password from database according to user's input
$input_username = mysql_real_escape_string($_POST['username']);
$login = mysql_query("SELECT * FROM user WHERE username = '".$input_username."'" );
// Check username and password match
$row = mysql_fetch_array($login);
if (mysql_num_rows($login)) {
if($row['password'] === md5($_POST['password'])){
$_SESSION['username'] = $_POST['username']; // store in session
$sql = "UPDATE user SET logindate = NOW() WHERE username = '" . mysql_real_escape_string($_SESSION['username']) . "'";
mysql_query($sql) or die("Error in SQL: " . mysql_error());
}
else{
// Invalid login
echo header('Location: loginerror.php');
exit;
}
?>
您只需使用PHP函数发送邮件即可
如果您希望在用户每次登录时收到电子邮件,您可能希望添加如下内容:
if ($rowcount == 1) {
$_SESSION['username'] = $_POST['username'];
$headers = "From:Me <no-reply@example.com>\r\n";
$headers .= "Reply-To: no-reply@example.com\r\n";
$email_to = "your@emailadress.tld";
$subject = "Someone logged in!";
$message = "User ".$_POST['username']." logged in!";
mail($email_to, $subject, $message, $headers);
header("Location: securedpage.php");
}
编辑:
请注意:查询两次,第二次不使用转义数据。您应该删除第一个,并将第二个更改为下面的代码。还使用mysql\u real\u转义字符串作为密码:
$input_password = mysql_real_escape_string($_POST['password']);
$login = mysql_query("SELECT * FROM tbuser WHERE (username = '" . $input_username . "') AND (password = '" . md5($input_password) . "')",$db);
简单,阅读此->您能解释为什么需要此脚本吗?因此每次运行此脚本时,您都会发送一封电子邮件???@Jleagle当某人登录时,我会收到一封电子邮件,说某人已登录in@Fabian我要把它放在一开始吗?请注意,依赖mail()的返回值并不能保证邮件已经发送。这是关于做这项工作的sendmail
程序。@Lukus hm?成功登录后您是否能够发送邮件?错误是什么?您可能还希望使用if(mysql_num_rows($login)>0)
并且您正在使用echo头('Location:login.php')代码>但它应该是标题('Location:loginerror.php')没有Echo的代码>如果:if($row['password']==md5($\u POST['password']){
$input_password = mysql_real_escape_string($_POST['password']);
$login = mysql_query("SELECT * FROM tbuser WHERE (username = '" . $input_username . "') AND (password = '" . md5($input_password) . "')",$db);