новичок здесь.
Я уже проверил форум, чтобы найти ответы, но мне не удалось, другие вопросы были конкретно о некоторых частях PHPMailer, но мой более общий. Поэтому я надеюсь, что никто не пометит мой вопрос как дубликат, как я в процессе обучения.
Я работаю над проектом PHP. Как это работает, пользователь переходит на страницу и пишет некоторые комментарии в форме (текстовый редактор) и нажимает кнопку «Отправить». Я могу получить его сообщение в моем письме. Я установил пароль и хост пуст по понятным причинам, но позже это будет мое реальное письмо с моим собственным доменом.
Проблема 2 проблемы здесь:
Не могли бы вы дать свое предложение или пример кода, который помогает. Спасибо.
if($_POST['mode']=='send'){
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = "myhost"; // SMTP server
//$mail->SMTPSecure = 'ssl';
$mail->From = "my email";
$mail->port = '26'; // can also change to 465
$mail->SMTPAuth = true;
$mail->Username= "my email";
$mail->Password = "my password";
$mail->AddAddress("my email");
$Name = mysql_real_escape_string($_POST['part_fname']); //this code is not getting the name and email
$Email = mysql_real_escape_string($_POST['part_email']);
$mail->Subject = "New Bug Report";
$mail->Body = "User Information, Name = " . $Name . " || Email = " . $Email; // I want to get the user's message not a static message!
$mail->WordWrap = 50;
if(!$mail->Send())
{
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
}
else
{
$message = 'Thanks for your suggestion';
}
}
Вот форма в HTML:
<form role="form" name="Form2" action="" method="post" class="form-horizontal">
<textarea name="bug" cols="100" rows="15" id="textarea" placeholder="Enter text ..."></textarea>
<input name="mode" value="send" type="hidden">
<p style="margin-top:5px;"><input type="reset" value="Clear Text!" class="btn btn-danger"> <button type="submit" class="btn btn-primary">Send report</button></p>
</form>
Удалить mysql_real_escape_string
это требует подключения к MySQL.
$Name = $_POST['part_fname'];
$Email = $_POST['part_email'];
$message= $_POST['bug'];//add this to get the textarea value
затем добавьте значение к телу:
$mail->Body = "User Information, Name = " . $Name . " || Email = " . $Email;
$mail->Body .= "Message: ".$message;
Если вы хотели сессий
когда пользователь входит в систему:
session_start();
$_SESSION['part_fname'] = $Name;
$_SESSION['part_email'] = $Email;
при отправке электронной почты:
session_start();
$Name = $_SESSION['part_fname'];
$Email = $_SESSION['part_email'];
$message= $_POST['bug'];
к форме нужно добавить поля для имени и адреса электронной почты примерно так:
<input name="part_fname" value="" type="text">
<input name="part_email" value="" type="text">
затем измените код:
$Name = $_POST['part_fname'];
$Email = $_POST['part_email'];
$message= $_POST['bug'];// textarea value
$mail->Body = "User Information, Name = " . $Name . " || Email = " . $Email;
$mail->Body .= "Message: ".$message;