Форма электронной почты в PHP: синтаксическая ошибка, неожиданная переменная T_VARIABLE

#php #email #variables

#php #Адрес электронной почты #переменные

Вопрос:

Я знаю, что это очень общая проблема, но поскольку я не забыл ни одной точки с запятой, и я объявил все переменные в начале скрипта, мне интересно, почему эта ошибка все еще выдает.

Код очень прост : РЕДАКТИРОВАТЬ :

 if (isset($_POST["email"])) 
{
$name=(isset($_POST["name"])) ? $_POST["name"] : ""; 
$email=(isset($_POST["email"])) ? $_POST["email"] : ""; 
$phone=(isset($_POST["phone"])) ? $_POST["phone"] : ""; 
$ext=(isset($_POST["ext"])) ? $_POST["ext"] : ""; 
$website=(isset($_POST["website"])) ? $_POST["website"] : ""; 
$body=(isset($_POST["body"])) ? $_POST["body"] : ""; 
$to = "romain.petit@infiniscale.com";
$subject = "Message $name from Infiniscale Website";
$message = "$name sent you a message using the contact form. <br/>";
$message .= "Infos : <br/>";
$message .= "Email : $email <br/>";
$message .= "Phone : $phone <br/>";
$message .= "Ext : $ext <br/>";
$message .= "Website : <a href="$website">$website</a> <br/><br/>";
$message .= "Message: $body <br/>";
$from = "mailer@infiniscale.com";
$headers = "From: " .  $from;
mail($to,$subject,$message,$headers);
return "Attempted Mail Send.";
}
else
{
  return false;
}
  

Форма отправлена, и появилось сообщение «Попытка отправки почты». Но я не получаю никаких сообщений электронной почты в свой почтовый ящик, хотя я знаю, что почтовый сервер работает.

Ответ №1:

Вам нужно экранировать двойные кавычки в вашем сообщении, поэтому вместо:

 $message = "Website : <a href="$website">$website</a> <br/><br/>";
  

Вам нужно будет сделать

 $message = "Website : <a href="$website">$website</a> <br/><br/>";
  

Для всех частей сообщения, содержащих двойные кавычки.

Комментарии:

1. да, но прежде чем закрыть тему, вы видели сделанную мной правку?

2. Убедитесь, что он не попал в папку со спамом и что PHP имеет правильный путь к службе sendmail.

Ответ №2:

@Nexerus правильно. Также можно использовать :

 $message = "Website : <a href='".$website."'>$website</a> <br/><br/>";
  

Комментарии:

1. Это просто отредактированный ответ Nexerus. Вы можете прокомментировать ответ Nexerus. Постарайтесь быть честным…

2. Nexerus позже отредактировал свой пост. @Tareq пожалуйста, посмотрите Комментарии герцога, которые были » спасибо, это вызвало ошибку «. Я думаю, что тогда Nexerus отредактирует свой пост. Сначала у него есть только один вариант. Это не моя вина.

3. @WalidHossain Пожалуйста, ознакомьтесь с приведенными выше комментариями. Голосование против (-) может разрушить вашу жизнь.

4. @Arif Позвольте мне дать вам 1 🙂

Ответ №3:

Я думаю, что заголовок должен быть разделен возвратом каретки и новой строкой » r n». и ваш заголовок, подобный этому $header=»From:».$from . » r n» ;