У меня проблемы с отправкой информации MySQL в сообщении электронной почты - PullRequest
0 голосов
/ 06 декабря 2011

Я хочу отправить электронное письмо с адресом электронной почты и паролем пользователя на его адрес электронной почты.Вот код, который у меня есть:

    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);

// Письмо отправлено, но никакая информация о $ ... в сообщении $ не отправлена.Я не могу понять, как заставить его отправить информацию.

Ответы [ 3 ]

2 голосов
/ 06 декабря 2011

Ваша переменная массива - $ row, а не $ row2.И используйте одинарные кавычки в вашем индексе..... и слушай слэкс.Ха-ха!Плохая идея хранить пароли, которые не зашифрованы.

0 голосов
/ 12 декабря 2011

Реальный ответ, как отмечает @SLacks в комментариях, заключается в том, что вы должны

  • Никогда, никогда не храните пароли в вашей базе данных
    • Вместо этого сохраняйте хэши паролей - используйте bcrypt, scrypt или аналогичный.
  • Никогда, никогда, никогда не отправляйте пароли пользователям по электронной почте
    • Отправьте пользователям по электронной почте уникальный токен, который они смогут использовать для сброса пароля.

Что касается вашего основного вопроса «почему мои переменные не отображаются в объединенной строке», вы, вероятно, захотите использовать синтаксис heredoc для вашей большой строки и дважды проверить, что ваш SQL запрос возвращает вам значения, которые вы ожидаете.

0 голосов
/ 06 декабря 2011

Не удивительно, что вы извлекаете строки в $ row и пытаетесь извлечь данные из $ row2. Кроме того, как утверждает @SLaks, никогда не отправляйте пароль по электронной почте. Кроме того, поскольку вы извлекаете пароль из базы данных, никогда не храните пароли в незашифрованном виде. И никогда не храните личную информацию пользователей в незашифрованном виде. Если кто-то взломает вашу базу данных, он получит всю личную информацию напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...