我在电子邮件中发送mySQL信息有问题


I am having problems sending mySQL information in an 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);

//邮件发送了,但是$…发送$消息中的信息。我不知道怎么让它发送信息。

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

不足为奇,您正在将行提取到$row中,并试图从$row2中检索数据。此外,正如@SLaks所说,永远不要通过电子邮件发送密码。另外,由于您是从数据库中检索密码,因此永远不要存储未加密的密码。也不要存储未经加密的用户个人信息,如果有人侵入你的数据库,他将直接拥有所有的个人信息。

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

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

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