2013-03-02 117 views
2

我的Wordpress站點上有一個非常基本的聯繫表單(硬編碼),我無法讓事情工作。它通過XAMPP在當地工作良好,我相信這是我只是失蹤,但任何幫助將不勝感激。提前致謝!。我也在使用我創建的模板WordPress的聯繫表格

<?php /* Template Name: contact */?> 

<?php get_header(); ?> 

<?php 

//vars declared to store form input 
$name=$email=$comment=$phone=""; 
//Error vars - to relay error message to the form 
$nameError=$emailError=$commentError=""; 
$error_message=""; 
$sentMessage=""; 
$status=0; //Will monitor if all fields have no errors and increment if so. 

function sanitise_var($string){ 
    htmlentities($string); 
    strip_tags($string); 
    return stripslashes($string); 
} 

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

if($_POST['name']==""){ 
    $nameError="Please enter a name"; 
    $error_message="Oops, error in the form. Please check"; 

} 

else { 
    $name=$_POST['name']; 
    ++$status; 

} 

if($_POST['email'] == "" || !preg_match("/^[a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", $_POST['email'])){ 
    $error_message="Oops, error in the form. Please check"; 
    $emailError="Please enter a valid email"; 

} 

else{ 
    $email=$_POST['email']; 
    ++$status; 
} 

if(!$_POST['phone']=="") $phone=$_POST['phone']; 

if($_POST['comment']==""){ 
    $error_message="Oops, error in the form. Please check"; 
    $commentError="Please enter a message"; 
} 

else{ 
    $comment=$_POST['comment']; 
    ++$status; 

} 


}//submitted if statement 


if($status==3 && $_POST['submitted']){ 
    $sentMessage="From: $name, email: $email, Phone: $phone, Comment: $comment"; 
    wp_mail("[email protected]", "From Android Scoop contact form", $sentMessage); 
    echo "Thanks, your email was sent successfully!"; 
} 

else{ 

echo<<<SOQ 

<div class="entry-content">   

    <h1 class="entry-title">Contact</h1> 

     <p class="contact"> 
      If you have a query drop us a line using the form below. We're always happy to hear from people with ideas for posts and content they'd like to   feature or maybe write about. Or maybe you just have some feedback you'd like to share with us. Why not just swing by and say hello. 
     </p>  
     <p class="requiring">* Denotes required fields</p>  

     <div class="form_left">  

    <form action="/contact/" method="POST"> 
       <p><label>Name:</label><input type="text" name="name" value="$name"/></p> 
       <p class="error">$nameError</p> 
       <p><label>Email</label><input type="text" name="email" value="$email"/></p> 
       <p class="error">$emailError</p> 
       <p><label>Phone:</label><input type="text" name="phone" value="$phone"/></p> 
       <input type="hidden" name="submitted" value="yes"/> 
       <input type="submit" value="Send your message"/>       
     </div> 

     <div class="form_right">   
       <p><label>Message:</label><br/><textarea name="comment" rows="20" cols="20">$comment</textarea></p> 
       <p class="error">$commentError</p> 
      </form> 
     </div> 
</div> 

SOQ;

} 
?> 

<?php get_footer();?> 
+0

什麼是錯誤?不工作是如此模糊 – 2013-03-02 22:00:26

+0

對不起..yeah ...它檢查窗體好,但不會提交它,我得到一個頁面未找到錯誤。我想知道是否由於wordpress,因爲它在本地服務器上正常工作。 – 2013-03-02 22:01:36

+0

外星人先生是正確的 - 這應該有助於http://stackoverflow.com/questions/4369/how-to-include-php-files-that-require-an-absolute-path – McNab 2013-03-02 22:25:00

回答

3

嘗試使用行動空白值像:

<form action="" method="POST"> 

如果不工作,嘗試重命名第一個輸入字段的名稱參數別的東西,如:

<input type="text" name="myname" value="$name"/> 
+0

沒有..我試過了各種各樣的東西,沒有任何東西可以工作。它變得非常令人沮喪。這裏的網頁http://androidscoop.co.uk/contact/,我的最後一次嘗試是你的建議.. – 2013-03-03 12:35:40

+0

我在上面的答案中增加了一個建議。我在你的網站上試了一下,修改了你的第一個輸入字段的「name」參數。 – user850010 2013-03-04 12:48:04

+0

超級巨星!完美的作品非常感謝,但我不知道如何解決它?我很抱歉,因爲我的愚蠢,我不能投票給你! – 2013-03-11 18:44:03

2

我不知道關於WordPress的,但作爲一般的PHP的規則走,並根據你回答我的評論,錯誤就出在這裏

<form action="/contact/" method="POST"> 
       ----^---- 
+0

是的,我知道PHP表單的一般規則,這就是爲什麼本地所有都可以,因爲腳本再次運行以驗證事件一旦提交。我也嘗試發佈到/ contact /,the_permalink();和絕對的網址只是爲了確保和沒有工作。看起來很奇怪,它如何在本地工作。我想知道我是否缺少一些與WordPress相關的東西。 – 2013-03-02 22:16:19