0

PHPは初めてですが、メールに送信する簡単な連絡フォームがあります。$message変数が表示されないことを除いて、すべてが期待どおりに機能します。

PHP はリクエストを処理し、ウェブサイト ビューアーをサンキュー ページに送信しています。ビューアーも確認メールを受信して​​おり、$messageデータを除くすべての要求された変数を含むメールを受信して​​います。

関数の制限$totalmessageにより、変数は に統合されます。mail()

私が言ったように、私はphpに慣れていませんが、あなたの助けに感謝します.

PHP コード:

<?php

    $to = "me@mywebsite.com";
    $subject = "Inquiry";
    $name = $_REQUEST['name'] ;
    $email = $_REQUEST['email'] ;
    $phone = $_REQUEST['phone'] ;

    if (isset($_POST['interest']) && $_POST['interest']!= 'none'){ 

        if (is_array($_POST['interest'])){ 
            $interest = implode(" ", $_POST['interest']); // format your array for use 
        } else { 
            $interest = $_POST['interest']; // no array -> print single value 
        } 
    } 
    $method = $_REQUEST['method' ] ;
    $message = $_GET['message'] ;
    $totalmessage = "
        Name:       $name \n
        Email:      $email \n
        Phone:      $phone \n
        Interest:           $interest \n
        Method:     $method \n 
        Message:             $message \n ";
    $headers = "From: $email";

    $sent = mail($to, $subject, $totalmessage, $headers);
    if($sent)
        header( "Location: /thankyou.html" );
    else
        print "We encountered an error sending your mail";
?>

HTML コード:

<div class="row">
    <br><label for="message"> Message:</label><br/>
    <textarea name="message" rows="20" cols="20" id="message"></textarea>
</div>

電子メール出力:

            Name:           bob

            Email:          bob@gmail.com

            Phone:          123-456-7890

            Interest:       research

            Method:         email

            Message:                               <===should have message text
4

6 に答える 6

1

メッセージの送信に GET 変数を使用しないでください。URL は 255 文字しか送信できません。そのため、POSTで送信するのが最善です。

<form method="post" action="index.php?action=send">
<textarea name="message" rows="20" cols="20" id="message"></textarea>
</form>

そしてあなたのphpで:

$message = $_POST['message'] ;
于 2012-08-30T19:46:24.417 に答える
0

試す

$message =$_REQUEST['message'];
于 2013-09-09T06:24:15.207 に答える
0

今のところまたはに変更$message = $_GET['message'] ;して、これが機能するかどうかをお知らせください。$message = $_REQUEST['message'] ;$message = $_POST['message'] ;

PHPにはand$_REQUESTの下にすべてが含まれますが、POST と GET はパラメーターを共有しません。あなたが持っている他のすべてのものはPOSTによって渡されているように見えるので、メッセージもPOSTによって渡されるように設定されていることは理にかなっています.$_GET$_POST

POST と GET の違いについては、こちらを参照してください。

つまり、DB またはデータ モデルからデータを取得する場合は GET を使用します (何かの状態を変更するものは実行しないでください)。

データ モデルを変更したい場合、または何かを実行したい場合 (この場合はメーラー スクリプトを実行する場合) は、POST を使用します。

于 2012-08-30T19:44:48.713 に答える
0

デフォルトでは、$_REQUEST変数には$_GET$_POSTおよびの内容が含まれます$_COOKIE

$_GET変数は、URL パラメータを介して現在のスクリプトに渡される変数の連想配列です。

$_POST変数は、HTTP POST メソッドを介して現在のスクリプトに渡される変数の連想配列です。

おそらくform、他のページまたはこのページから投稿されたメッセージを受け取った後、次のことを実行したいと考えています。

$message = $_POST['message'];

取得の代わりに。

于 2012-08-30T19:47:32.997 に答える
0

POST / GET / REQUEST 配列と一貫性を保つ必要があります。フォームが使用しているメソッドは何ですか? それが何であれ、フォーム処理コードで同じものを使用してください。たとえば、フォームが次のように表示されている場合<form method="POST">、バックエンド コードは $_POST 配列からすべての値を取得する必要があります。

于 2012-08-30T19:47:41.540 に答える