0

私は現在、自分の Web サイトで素敵な連絡先フォームを作成していますが、html テンプレートを機能させるのに問題があります。

テンプレート自体は、検証済みの HTML を含む .txt ファイルです。このhtml内にはタグがあります

     [email_content]. 

このタグは、私のウェブサイトのお問い合わせフォームから生成された電子メールの内容に置き換える必要があります。

     <form class="form-horizontal" id="contact_form" name="contact_form">
        <div id="form_name_ctrl_group" class="control-group">
            <input class="input-xlarge" type="text" id="inputName" name="inputName" placeholder="Name">
        </div>
        <div class="control-group">
            <input class="input-xlarge" type="text" id="inputEmail" name="inputEmail" placeholder="Email">
        </div>
        <div class="control-group">
            <textarea class="input-xlarge" id="inputMessage" name="inputMessage" placeholder="Insert message here..."></textarea>
        </div>
        <button type="submit" class="btn btn-sky">Send</button>
        <button type="button"  class="btn btn-sky">Reset</button>
    </form>

送信時に、このフォームは jQuery validate を使用して検証され、次に serialize 関数を使用して jQuery ajax 経由で送信されます。シリアル化されたデータは、使用のために次の php 関数に送信されます。

<?php
    function mailer_send($mailer_recipient, $mailer_subject, $mailer_message){
        $mailer_headers = 'From: webmaster@example.co.uk' . "\r\n" .
        'X-Mailer: PHP/' . phpversion() . "\r\n"
        'MIME-Version: 1.0\r\n' . "\r\n" 
        'Content-Type: text/html; charset=ISO-8859-1\r\n';
        mail($mailer_recipient, $mailer_subject, $mailer_message, $mailer_headers);
     }

$name = $_POST['inputName'];
$email = $_POST['inputEmail'];
$message = strip_tags($_POST['inputMessage']);
$template = file_get_contents('email_templates/template.txt');
$template = str_replace('[email_content]',$message, $template);


     mailer_send('enquiries@example.co.uk','Test Email',$template);
 ?>

ご覧のとおり、HTML テンプレート内のタグ [email_content] を、ユーザーが連絡先フォームに入力したメッセージに置き換えようとしています。テンプレートを使用して、自分のメール アカウントにメールを送信する必要があります。私の現在の問題は、実際には何も受け取っていないことです。

スクリプトはテンプレート部分がなくても機能します (mailer_send で $message を使用する場合)。

私のディレクトリ構造は次のとおりです。

       /fnc
           mailer.php
           /email_templates
                template.txt

追加: サーバー ログに次のエラー メッセージが表示されます。

   [19-Jul-2013 13:00:43 UTC] PHP Parse error:  syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/username/public_html/example/fnc/mailer.php on line 5
4

1 に答える 1

1

いくつかの文字列連結演算子がありません。エラー メッセージを見てください。 PHP Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/username/public_html/example/fnc/mailer.php on line 5

function mailer_send($mailer_recipient, $mailer_subject, $mailer_message){
    $mailer_headers = "From: webmaster@example.co.uk" . "\r\n" .
    "X-Mailer: PHP/" . phpversion() . "\r\n" .
    "MIME-Version: 1.0\r\n" .
    "Content-Type: text/html; charset=ISO-8859-1\r\n";
    mail($mailer_recipient, $mailer_subject, $mailer_message, $mailer_headers);
 }
于 2013-07-19T13:35:44.893 に答える