我在电子邮件中发送mySQL信息时遇到问题

时间:2011-12-06 02:00:04

标签: php email message

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

    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中的$ ...信息。我无法弄清楚如何让它发送信息。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

关于“为什么我的变量不会出现在连接字符串中”的主要问题,您可能希望使用heredoc syntax作为大字符串,并仔细检查您的SQL查询是否正在给出你支持你期望的价值观。