1

Wordpress サイトに非常に基本的なコンタクト フォーム (ハード コード) がありますが、機能しません。XAMPPを介してローカルで正常に動作し、私が見逃しているものだと確信していますが、どんな助けも大歓迎です. 前もって感謝します!。私も自分で作ったテンプレートを使っています

<?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("mathornley@gmail.com", "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();?>
4

3 に答える 3

3

次のようなアクションに空白の値を使用してみてください。

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

それがうまくいかない場合は、最初の入力フィールドの名前パラメーターを次のように別の名前に変更してみてください。

<input type="text" name="myname" value="$name"/>
于 2013-03-02T22:50:25.077 に答える
2

ワードプレスについては知りませんが、一般的な PHP のルールに従って、コメントで私に返信した内容によると、エラーはここにあります

<form action="/contact/" method="POST">
              ----^----
于 2013-03-02T22:02:54.617 に答える
-1

WordPress のすぐに使えるお問い合わせフォームを使用しないのはなぜですか? たとえば、Contact Form 7はかなり優れています。

Contact Form 7 はオープン ソース ソフトウェアであり、複数の連絡フォームを管理でき、さらに簡単なマークアップでフォームとメールの内容を柔軟にカスタマイズできます。このフォームは、Ajax を利用した送信、CAPTCHA、Akismet スパム フィルタリングなどをサポートしています。

インストール

  • contact-form-7 フォルダー全体を /wp-content/plugins/ ディレクトリーにアップロードします。
  • WordPress の「プラグイン」メニューからプラグインを有効にします。
  • WordPress の管理パネルに「お問い合わせ」メニューがあります。
  • お問い合わせフォームを作成し、それをコピーしてurl、好きな場所に貼り付けます。
  • お問い合わせフォームは、その場所に正確に表示されます。

例が必要な場合は、このサイトをチェックアウトして、ルック アンド フィールを確認できます。

于 2019-03-18T19:39:21.910 に答える