2013-05-06 2 views
-1

Я пытаюсь создать контактную форму для своего сайта, но когда я нажимаю кнопку отправки, файл php загружается вместо запуска. Я использую хром, но не думаю, что это должно иметь значение Я думаю, что есть синтаксическая ошибка, но я испортил удаление, добавление и прочее, и даже когда нет синтаксических ошибок, он по-прежнему загружает файл, а не запускает его И, да ... это точное имя файла PHP (SendEmail.php)Кнопка отправки загружает php вместо ее запуска

HTML

<form name="contactform" method="post" action="SendEmail.php"> 
<div class="ContactHeaders">Name:</div> 
<input type="text" name="Name" class="ContactBoxes"/> 
<div class="ContactHeaders">Email:</div> 
<input type="text" name="Email" class="ContactBoxes"/> 
<div class="ContactHeaders">Message:</div> 
    <div style="width:100%"> 
    <textarea name="Message" maxlength="1000"></textarea> 
    </div> 
<div style="width: 100%"> 
<input type="submit" class="Submitbtn" value="Submit"> 
</div> 
</form> 

PHP

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


    $email_to = "[email protected]"; 
    $email_subject = "Website Contact"; 


    function died($error) { 

     echo "We are very sorry, but there were error(s) found with the form you submitted."; 
     echo "These errors appear below.<br /><br />"; 
     echo $error."<br /><br />"; 
     echo "Please go back and fix these errors.<br /><br />"; 
     die(); 
    } 

    // validation expected data exists 
    if(!isset($_POST['Name']) || 
     !isset($_POST['Email']) || 
     !isset($_POST['Message'])) { 
     died('Sorry, but there appears to be a problem with the form you submitted.');  
    } 

    $first_name = $_POST['Name']; // required 
    $last_name = $_POST['Email']; // required 
    $email_from = $_POST['Message']; // required 

    $error_message = ""; 
    $email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 
    if(!preg_match($email_exp,$Email)) { 
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; 
    } 
    $string_exp = "/^[A-Za-z .'-]+$/"; 
    if(!preg_match($string_exp,$Name)) { 
    $error_message .= 'The First Name you entered does not appear to be valid.<br />'; 
    } 

    if(strlen($Message) < 10) { 
    $error_message .= 'The message you entered does not appear to be valid.<br />'; 
    } 
    if(strlen($error_message) > 0) { 
    died($error_message); 
    } 

    function clean_string($string) { 
     $bad = array("content-type","bcc:","to:","cc:","href"); 
     return str_replace($bad,"",$string); 
    } 


    $Name .= clean_string($Name)."\n"; 
    $Email .= clean_string($Email)."\n"; 
    $Message .= clean_string($Message)."\n"; 


//email headers 
$headers = 'From: '.$Email."\r\n". 
'Reply-To: '.$Email."\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
@mail($email_to, $email_subject, $Message, $headers); 
?> 

Thank you for contacting me. I will be in touch with you very soon. 

<?php 
} 
?> 

Я не могу найти, что не так !!!

+2

Вы установили Apache, PHP? попробуйте запустить ' 'и посмотреть, действительно ли установлен PHP –

+0

U использует WAMP или XAMPP или установил APACHE, PHP отдельно? –

+0

У вас есть открывающий тег php перед тем, как ваш 'if (isset ...'? – smerny

ответ

2

Если загружается фактический код php soure, у вас есть некоторые проблемы с конфигурацией на вашем веб-сервере, но я не буду вдаваться в это.

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

Одна из ошибок, т.е. вы сердитесь, это факт, что у вас нет переменной $ Message, учитывая тот факт, что ваш код говорит: $email_from = $_POST['Message']; // required.

Помимо этого: предлагаю вам ознакомиться с соглашениями об именах, относящимися к символам верхнего и нижнего регистра. Это упрощает отладку кода. Попробуйте http://framework.zend.com/manual/1.12/en/coding-standard.naming-conventions.html для начала.

PS. У вас действительно есть переменная $ Message, но ее пустая.

+0

Я сейчас разобрал его, спасибо :) –

+1

Добро пожаловать :). Если ответ ответил на ваш вопрос, вы должны нажать галочку рядом с ним, чтобы принять ответ. –

0

У меня была та же проблема. Я пытался это сделать на сервере WAMP. Он работал нормально, когда я набираю URL-адрес: localhost/login.html и зарегистрирован. Проблема возникла, когда я открыл ее через редактор. Новый URL-адрес: localhost:66342/login.html.

Так что все, что я должен был сделать, это ввести исходный URL вместо этого нового, и он сработал.

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