Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当有人登录mysql时如何发送电子邮件_Php_Mysql - Fatal编程技术网

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')如果:
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);