-2

PHP コードを使用したパスティー: http://pastie.org/6427151

HTML フォームを使用したパスティ: http://pastie.org/6427155

なぜこれがうまくいかないのですか?「すべてのフィールドに入力してください」と吐き出します。フィールドがすべて正しく入力されていても。私はPHPについてほとんど知らないので、簡単なものである可能性があります。私はこの同じスクリプトを別の Web サイトで使用していますが、そこでは問題なく動作するため、困惑しています。

4

4 に答える 4

3

のマークアップの入力フィールドには属性formが必要です。nameこのname属性は、ユーザーが送信した$_POSTor配列内の値にアクセスするためのキーとして機能します。$_GET

したがって、次のものが必要です。

<form ... method="post">
...
<input type="text" name="name" id="name" placeholder="Name" ... />
...
<input type="email" name="email" id="email" placeholder="Email" ... />
...
<textarea name="message" id="message" ... ></textarea>

次に、それぞれを使用してアクセスしますname(大文字と小文字が区別されます):

$name = $_POST['name']; // not $_POST['Name'], or $_GET['name']

また、処理するユーザーランドから送信されたすべてのコンテンツを慎重に検証してサニタイズしてください。

于 2013-03-09T04:18:05.030 に答える
1

まず、フォームからデータを送信するすべての 、、および要素にname属性を定義します。inputtextareaselectbutton

また、スクリプトに表示される内容を最適filter_var()に処理するために、FILTER_VALIDATE_EMAILフラグを使用することもお勧めします。

// If invalid, this will return nothing.
// If valid, the email address as a string.
function validateEmail($eamil) {
    return filter_var($email, FILTER_VALIDATE_EMAIL);
}

これはベスト プラクティスであり、他のスクリプト バージョンよりも安全です。この関数で使用できるその他の価値のあるフィルターおよび検証フラグもあります。

于 2013-03-09T04:26:21.053 に答える
0

すべてのタイプnameで属性を定義する必要があります。input

<input type="text" placeholder="Name" class="full" required name="name" id="name" />

name属性値はに関連しています。$_POST定義後、name attributeの値を取得できます$_POST['name']

于 2013-03-09T04:18:27.850 に答える
0

name attributesすべての入力フィールドを定義するのを忘れています。

は要素のname attribute名前を指定します<input>

は、 JavaScriptname attributeの要素を参照するため、またはフォームの送信後にフォームデータを参照するために使用されます。

<input type="text" placeholder="Name" name="name" class="full" required id="name" />
<input type="email" placeholder="Email" name="email" class="full" required id="email" />
<textarea id="message" cols="30" name="message" rows="10" class="full"></textarea>
于 2013-03-09T04:18:53.043 に答える