0

私は自分の連絡先フォームを作成しましたが、誰かが私にメッセージを送ったときに下の画像のような形式なしで来ることを除いて、うまく機能しています:

スタイルなしの電子メール、行テキストのみ

これは私が使用する私の.phpコードです:

    $formdata = array (
       'name' => $name,
       'city' => $city,
       'message' => $message
    );

    if ( !( $formerrors ) ) :
        $to  = "me@sipledomain.com";// input my name address to get mail to
        $subject = "From $name";
        $message =  json_encode($formdata);

        if ( mail( $to, $subject, $message ) ):
           $msg = "Thanks for filling out the form, i will contact you soon";
        else:
           $msg = "Problem sending the message";
        endif; // mail form data
    endif; // check for form errors
 endif; //form submitted

前もって感謝します

4

2 に答える 2

1

json_encode()人間が読むためではなく、後でデコードするように設計された1行のテキストに配列をエンコードします。

代わりに、独自の HTML を記述したり、改行を加えたりして、メール メッセージを自分で作成します。配列を解析/反復することで、プログラムで実行できます。

例えば:

$message = 'Name: '.$formdata['name'].'<br />'.$formdata['city'].'<br />'.'...';


本当に JSON にエンコードしたい場合は、エンコード後に JSON を解析して同じことを行う必要があります。

空白を保持するjson_encode()calledを呼び出すときに、フラグを調べたい場合があります。JSON_PRETTY_PRINT詳細: http://www.php.net/manual/en/json.constants.php

使用中で:$message = json_encode($formdata, JSON_PRETTY_PRINT);


JSON を扱うには、JSON をきれいなツリーにフォーマットするhttp://jsonmate.com/などのツールを使用するのが好きです。

于 2013-10-10T03:29:58.277 に答える