2014-06-05 2 views
0

저는 PHP가 처음인데 내 웹 사이트에서 작동하는 연락 양식을 얻으려고 애쓰는 데 어려움이 있습니다. 연락처 양식을 내 사이트에 올렸습니다. 모든 것이 제대로 작동하고 메일을 보냅니다. 그것은 Godaddy의 내 서버에 연결되어 있으므로 작동하지 않는 이유는 확실하지 않습니다. 다음은 내 코드입니다PHP 문의 양식 사용하기

HTML (익명 이름의 일부를 변경했습니다.) :

<form id="contact.php" action="mywebsite" method="post"> 
          <div class="div_input"><input type="text" name="c_name" value="Name" onfocus="if(this.value=='Name')this.value=''" onblur="if(this.value=='')this.value='Name';" /></div> 
          <div class="div_input"><input type="text" name="c_email" value="E-mail" onfocus="if(this.value=='E-mail')this.value=''" onblur="if(this.value=='')this.value='E-mail';" /></div> 
          <div class="div_input"><input type="text" name="c_tel" value="Telephone" onfocus="if(this.value=='Telephone')this.value=''" onblur="if(this.value=='')this.value='Telephone';" /></div> 
          <div class="div_textarea"><textarea name="c_text" rows="1" cols="1" onfocus="if(this.value=='Text')this.value=''" onblur="if(this.value=='')this.value='Text';">Text</textarea></div> 
          <div class="div_btn"><input id="form_send" type="submit" name="c_send" value="" /></div> 
          <div class="div_warnings"></div> 
          <div class="loading"><img src="" alt="Loading" /></div> 
          <div class="clear"></div> 
         </form> 
        </div> 

PHP :

<?php 
$field_name = $_POST['c_name']; 
$field_email = $_POST['c_email']; 
$field_message = $_POST['c_message']; 

$mail_to = 'myemail'; 
$subject = 'Message from a site visitor '.$field_name; 

$body_message = 'From: '.$field_name."\n"; 
$body_message .= 'E-mail: '.$field_email."\n"; 
$body_message .= 'Message: '.$field_message; 

$headers = 'From: '.$field_email."\r\n"; 
$headers .= 'Reply-To: '.$field_email."\r\n"; 

$mail_status = mail($mail_to, $subject, $body_message, $headers); 

if ($mail_status) { ?> 
    <script language="javascript" type="text/javascript"> 
     alert('Thank you for the message. We will contact you shortly.'); 
     window.location = 'mywebsiteurl'; 
    </script> 
<?php 
} 
else { ?> 
    <script language="javascript" type="text/javascript"> 
     alert('Message failed. Please, send an email to myemail'); 
     window.location = 'mywebsiteurl'; 
    </script> 
<?php 
} 
?> 
내가 어떤 도움을 주셔서 감사합니다

,

감사합니다. 이름에서

<input type="text" name="c_name" value="Name" ... 

$field_name = $_POST['cf_name']; 

봐 : 그것은 여기에 따라서 양식 실 거예요 작업을 정의되지 않은 변수의 통지를 던져 때문에

+0

"$ _POST [ 'cf_name'];" $ _POST [ 'c_name']; 그리고 다른 사람들을 위해서도 ... – Jim

+0

은 contact.php에 당신의 PHP 코드가 있습니까? –

+0

짐, 예. 죄송합니다. 잘못된 스크립트를 사용했습니다. 그들은 c_name으로되어 있습니다. 편집 됨. 그리고 네, 내 PHP는 contact.php에 – Sanguinius

답변

0

발견. 나의 html에서, 나는 나의 웹 사이트가 아니라 내 php 페이지에 action = ""을 지적해야한다. 도움 주셔서 감사합니다.

0

우선, 내가 더 찾을 didnt한다. 실수를 탐지하기 위해 오류보고를 사용하십시오.

+0

주석 주셔서 감사합니다. 실수로 약간 다른 스크립트를 사용했습니다. 불편 함을 드려서 죄송합니다. – Sanguinius

0
<form action="contact.php" id="mywebsite" method="post"> 
          <div class="div_input"><input type="text" name="cf_name" value="Name" onfocus="if(this.value=='Name')this.value=''" onblur="if(this.value=='')this.value='Name';" /></div> 
          <div class="div_input"><input type="text" name="cf_email" value="E-mail" onfocus="if(this.value=='E-mail')this.value=''" onblur="if(this.value=='')this.value='E-mail';" /></div> 
          <div class="div_input"><input type="text" name="cf_tel" value="Telephone" onfocus="if(this.value=='Telephone')this.value=''" onblur="if(this.value=='')this.value='Telephone';" /></div> 
          <div class="div_textarea"><textarea name="cf_text" rows="1" cols="1" onfocus="if(this.value=='Text')this.value=''" onblur="if(this.value=='')this.value='Text';">Text</textarea></div> 
          <div class="div_btn"><input id="form_send" type="submit" name="cf_send" value="" /></div> 
          <div class="div_warnings"></div> 
          <div class="loading"><img src="" alt="Loading" /></div> 
          <div class="clear"></div> 
         </form> 
        </div> 

입력란의 이름은 대상 파일의 데이터에 액세스 할 때 동일해야합니다. 양식 작업은 양식 데이터와 프로세스를 가져 오는 데 사용됩니다. 따라서 대상 파일 이름을 지정해야합니다!

영어로 죄송합니다.

희망이 당신을 도울!

+0

그게 효과가 있을지 모르지만 그게 왜 작동하지 않았는지 그에게 말하면서, 같은 질문으로 내일 다시 올 것입니다. 누군가에게 완성 된 코드를 제공하면 실제로 한 일을 설명을 추가해야합니다. –

+0

코멘트 주셔서 감사합니다. 실수로 약간 다른 스크립트를 사용했습니다. 모두 c_로 시작해야합니다. 불편을 끼쳐 드려 죄송합니다. – Sanguinius

0

아마도 도움이 될까요? (기존 $ 헤더 행 뒤에 추가)

$headers .= "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type: text/html; charset=UTF-8" . "\r\n"; 
$headers .= "Content-Transfer-Encoding:base64 \r\n"; 
$new_message_body= $base64contents = rtrim(chunk_split(base64_encode($body_message))); 
mail($to, $subject, $new_message_body, $headers); 
+0

답장을 보내 주셔서 감사합니다. 나는 그것을 밖으로 시도했다, 아무것도 변화 한 것을 보이지 않는다. – Sanguinius