2013-12-21 5 views
-5

У меня есть форма контакта в PHP, что дает мне некоторые errors.This это код я использую:контактной формы в PHP

$message=$_POST["name"]."\r\n".$_POST["email"]."\r\n".$_POST["phone"]."\r\n".$_POST["subject"]."\r\n".$_POST["message"]; 

smtpmailer('[email protected]', '[email protected]', 'Improve Mediehus Aarhus', 'From contact form', $message); 

Моей проблема заключается в том, что когда я загрузить страницу в первый раз, она дает мне ошибки, связанные с "$ сообщение = ..." строку для всех строк:

Notice: Undefined индекс: имя в D: \ XAMPP \ HTDOCS \ взаимодействия \ contact.php на линии 56
Примечание: Неопределенные index: электронная почта в D: \ xampp \ htdocs \ взаимодействие \ contact.php в строке 56 и такая же ошибка для телефона, subje ct и сообщение.

после отправки формы контакта, я больше не получаю ошибок.

также, когда я загрузить страницу в первый раз, он посылает и пустая электронная почту к нужному адресу

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

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

ответ

1

Вы должны использовать конструкцию isset для проверки переменных перед назначением.

if(isset($_POST["name"])) 
{ 
$name = $_POST["name"]; 
} 
else 
{ 
echo "Name is not set"; 
} 

Вы должны сделать это для всех, если ваши другие $_POST переменные, прежде чем передать его в smtpmailer().

1

Кнопка Код

<input type="submit" name="submit"> 

и заменить код

if(isset($_POST['submit'])){ 

$message=$_POST["name"]."\r\n".$_POST["email"]."\r\n".$_POST["phone"]."\r\n".$_POST["subject"]."\r\n".$_POST["message"]; 

smtpmailer('[email protected]', '[email protected]', 'Improve Mediehus Aarhus', 'From contact form', $message); 

} 

к

$message=$_POST["name"]."\r\n".$_POST["email"]."\r\n".$_POST["phone"]."\r\n".$_POST["subject"]."\r\n".$_POST["message"]; 

smtpmailer('[email protected]', '[email protected]', 'Improve Mediehus Aarhus', 'From contact form', $message); 
+0

он работал flowless, но у меня был еще один вопрос о всплывающем сообщении, которое я хотите отобразить после отправки формы. Я использовал JavaScript 'if (! $ Mail-> Send()) {\t \t \t echo" "; } 'в конце функции smtpmailer, и он не работает, он не отображает всплывающее окно. – alinclaudiu13

+0

попробуйте это, если (smtpmailer ('ali_n_claudiu @ yahoo.com ',' [email protected] ',' Улучшить Mediehus Aarhus ',' From contact form ', $ message)) {\t echo " «;} –

0

Использование isset в @Shankar Дамодарана сказал или

Попробуйте это, если вы хотите скрыть уведомление и ошибки.

ini_set ("display_errors", "off"); // установить его, если вы хотите ошибки отображения

0
if(isset($_POST['name'])){ 
    $message=$_POST["name"]."\r\n".$_POST["email"]."\r\n".$_POST["phone"]."\r\n".$_POST["subject"]."\r\n".$_POST["message"]; 
    smtpmailer('[email protected]', '[email protected]', 'Improve Mediehus Aarhus', 'From contact form', $message); 
} 

Таким образом, по электронной почте отправляется только тогда, когда форма была отправлена ​​

Смежные вопросы