【问题标题】:I am having problems sending mySQL information in an email message在电子邮件中发送 mySQL 信息时遇到问题
【发布时间】:2011-12-06 02:00:04
【问题描述】:

我想向他们的电子邮件帐户发送一封包含用户电子邮件和密码的电子邮件。这是我的代码:

    if ($ct2 == 1){
        while ($row = mysql_fetch_array($sql)){
            $emusername = $row2["username"];
            $empassword = $row2["password"];
            $firstname = $row2["first_name"];
            $to = $row["email"];
            $subject = "User Name And Password";
            $message =  $firstname 
                . "Here is your username and password,\n Username" 
                . $emusername . "\n Password" 
                . $empassword . "\n\n";
            $headers = "From: webmaster@tfcbondfire.com\r\nReply-To: Forgot username and password.";

            mail($to,$subject,$message,$headers);

//邮件发送了,但是$message中的$...信息都没有发送。我不知道如何让它发送信息。

【问题讨论】:

  • 从不通过电子邮件发送密码。
  • 也许使用$row 而不是$row2? +1 @SLaks 的 cmets。
  • 从不将密码存储在数据库中。
  • 你可能有SQL注入漏洞。
  • @DigitalPrecision 如果您存储的是正确的哈希值,那么您没有存储密码。

标签: php email message


【解决方案1】:

您的数组变量是 $row 而不是 $row2。并在索引中使用单引号。 .... 并听听 SLaks。哈哈!保留未加密的密码是个坏主意。

【讨论】:

  • 我总是忘记一些愚蠢的事情。但是,我可能不得不重新考虑如何找回忘记的密码。也许是一个问题/答案……
  • @JamesAraSmith:您不得允许用户找回忘记的密码。相反,通过电子邮件向他们发送一个链接以设置新密码(就像所有主要网站一样)。您应该永远不可能找到用户的密码。
  • 好的,我能做到。再次感谢!
【解决方案2】:

并不奇怪,您将行提取到 $row 中,并且尝试从 $row2 中检索数据。此外,正如@SLaks 所述,切勿通过电子邮件发送密码。在旁注中,由于您要从数据库中检索密码,因此永远不要存储未加密的密码。并且永远不要存储未加密的用户的个人信息,如果有人入侵您的数据库,他将直接拥有所有个人信息。

【讨论】:

  • 此外,如果您不验证地址/主题是否符合您的预期,您将打开一个巨大的代理供垃圾邮件发送者利用:phpbuilder.com/columns/ian_gilfillan20060412.php3
  • 伟大的归属@sirbrialliance。詹姆斯,您的意思是如何在将数据存储到数据库之前对其进行加密?必要时解密?
  • @JamesAraSmith here 是开始加密密码的好地方。
【解决方案3】:

正如@SLacks 在 cmets 中指出的那样,真正的答案是你应该

  • 永远不要在您的数据库中存储密码
    • 改为存储密码的哈希值 - 使用 bcrypt、scrypt 或类似名称。
  • 永远不会通过电子邮件将密码发送给用户
    • 向用户发送一个唯一的令牌,而不是他们可以用来重置密码。

至于您的主要问题“为什么我的变量不显示在连接的字符串中”,您可能希望将heredoc syntax 用于您的大字符串,并仔细检查您的 SQL 查询是否正在返回您期望的值。

【讨论】:

    猜你喜欢
    • 2022-08-18
    • 2012-04-06
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多