0

sencha touchフォーム機能を使用して、フォームのコンテンツをPHPメールスクリプトに送信しようとしています。私はphpとsenchaについてかなり弱い知識を持っていますが、それでも私が見つけたphpサンプルスクリプトでそれを機能させようとしています。煎茶の部分は、3つのフィールドを持つ基本的なフィードバックフォームです。

コードのsencha部分は次のとおりです。

       feedbackForm = Ext.create("Ext.tab.Panel", {
            items: [{
                title: 'Feedback',
                iconCls: 'user',
                xtype: 'formpanel',
        url: 'feedback.php',                    
                layout: 'vbox',
                tabBar: false,
                items: [
                                {
                                    xtype: 'fieldset',
                                    tabBar: false,
                                    items: [
                                        {
                                            xtype: 'textfield',
                                            label: 'Your Name'
                                        },
                                        {
                                            xtype: 'emailfield',
                                            label: 'Your Email'
                                        },
                                        {
                                            xtype: 'textfield',
                                            label: 'The Good'
                                        },
                                        {
                                            xtype: 'textfield',
                                            label: 'The Bad'
                                        }
                                    ]
                                },
                                {
                                    xtype: 'button',
                                    text: 'Send',
                                    ui: 'confirm',
                                    handler: function() {
                                        this.up('formpanel').submit();                                          
                                    }
                }]
                }]
            });

this.up('formpanel')。submit(); lineは、次のようなfeedback.phpスクリプトへのデータの送信を担当します。

<?php
// Configuration Settings
$SendFrom =    "Form Feedback <feedback@myDomain.com>";
$SendTo =      "myEmail@gmail.com";
$SubjectLine = "Feedback Submission";
$ThanksURL =   "thanks.html";  //confirmation page

// Build Message Body from Web Form Input
foreach ($_POST as $Field=>$Value)
 $MsgBody .= "$Field: $Value\n";
sgBody .= "\n" . @gethostbyaddr($_SERVER["REMOTE_ADDR"]) . "\n" .
 $_SERVER["HTTP_USER_AGENT"];
sgBody = htmlspecialchars($MsgBody, ENT_NOQUOTES);  //make safe

// Send E-Mail and Direct Browser to Confirmation Page
mail($SendTo, $SubjectLine, $MsgBody, "From: $SendFrom");
header("Location: $ThanksURL");
?>

上記は機能しており、電子メールを送信していますが、次のように'label:' The Bad''の最後のフィールドコンテンツのみが含まれています:null:ff(最後のフィールドにffを入力した場合)

メッセージをアセンブルするPHPループが問題であるように見えますが、おそらくデータを正しく転送していませんか?

助言がありますか?前もって感謝します。

4

1 に答える 1

0

うーん、Sencha の例のフィールドには名前がありません。それらは互いに上書きしていますか?「The Bad」フィールドをコメントアウトすると、「The Good」フィールドが表示されますか? アイテムのコレクションを送信するだけかもしれません。Fiddler2 を使用して、送信されるデータを傍受し、POST に期待どおりの実際のデータが含まれているかどうかを確認します。フィールドにすべての名前を付けて、それらを直接参照してみてください。

于 2012-06-25T19:16:21.983 に答える