2013-03-02 3 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

Какая ошибка? Не работает так неопределенно –

+0

Извините..yeah ... Он проверяет форму ok, но не отправит его, и я получаю сообщение об ошибке страницы. Мне интересно, это из-за Wordpress, поскольку он отлично работает локально на моем локальном сервере. –

+0

Г-н Алиен прав - это должно помочь http://stackoverflow.com/questions/4369/how-to-include-php-files-that-require-an-absolute-path – McNab

ответ

3

Попробуйте использовать пустое значение для действий как:

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

Если это не работает, попробуйте переименовать параметр имени первого поля ввода на что-то другое, как:

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

Нет. Я пробовал все виды, и ничего не работает. Это очень расстраивает. Вот страница http://androidscoop.co.uk/contact/, моей последней попыткой было ваше предложение. –

+0

Я добавил еще одно предложение в вышеприведенном ответе. Я попробовал это на вашем веб-сайте, и изменение параметра «имя» для вашего первого поля ввода, похоже, сработало. – user850010

+0

Superstar !. отлично работает, но я не уверен, как это решило ?. Извините, из-за моей глупости, я не могу проголосовать за вас! –

2

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

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

Да, я знаю общие правила в php-формах, поэтому локально все нормально, так как скрипт снова запускается, чтобы проверять вещи после их отправки. Я также пробовал отправить в/contact /, the_permalink(); и абсолютный URL-адрес, чтобы быть уверенным, и никто не работает. Кажется странным, как это работает на местном уровне. Мне интересно, не хватает ли я чего-то связанного с Wordpress. –

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