2011-01-26 15 views
0

なぜこの作品はありませんか?コードの下シンプルなPHPクッキーに関する質問

はクッキーの値が空白のsend.php

<?php 
    $expire=time()+60*60*24*30; 
    $name = $_POST['nameField']; 
    setcookie("name", $name, $expire); 
?> 

です。どうして?これをどうやって解決するのですか?

新しい問題:

はなぜ$ _POST [ 'nameField'] NULLのですか?

<form action="/contact/send.php" method="post" id="contactForm"> 
<input type="text" id="nameField" name="Name" value="<?php if (isset($_COOKIE["name"])){ echo $_COOKIE["name"];} ?>" class="extra_large" /> 
<input type="submit" class="submit" name="Submit" value=" Send " /> 
+0

'$ _POST ['nameField']'が適切な値を持っていますか? – Gumbo

+0

$ _POST ['nameField']の値は何でしたか... var_dumpこれをブラウザにダンプしてその値を確認してください –

+0

どうしたらうまくいかなかったのですか?エラーメッセージが表示されますか? – alex

答えて

1
<input type="text" id="nameField" name="Name" 

この入力の名前は、あまりにも、nameFieldでなければなりません。

<input type="text" id="nameField" name="nameField" 

$ _GET$ _POST変数名で、フォーム入力の値を取得します。たとえば、$_GET['stack']$_POST['stack']は、<input name="stack">の値を取得します。もしそうなら

0

HTMLでは名前が掲載さ値の名前ではないIDです、名前=「nameField」を記述する必要があり、上記のコードは、フォームフィールドの名前は「名前で正しく

0

を動作しているようです'、idは' nameField 'です。したがって、いずれかを使用する必要があります

$ name = $ _POST ['Name'];

やクッキーについてnameField

0

への入力に名前を変更します。クッキーは、次のページの読み込み時に有効になります。 Cookieを設定すると、別のページを読み込むまでCookieを参照または使用することはできません。それは彼らがどのように動作するかの単なる一種に過ぎません。 POSTについて

:あなたは[「name_attribute」] $ _POSTを使用する必要がある代わりに、IDのあなたはそれが機能していません知っていますどのように

0

クッキーは(そして$ _COOKIE)ページのロードまでは設定されません - それは、クライアントがその中にクッキーとのリクエストを送信する前にクライアントにクッキーを設定ヘッダーを返すことがあります。

このスクリプトのHTTPリクエストがあります。ヘッダーが返され、出力とともに名前のクッキーが設定され、cookieという名前で次のページが作成されます($ _COOKIEに入力されます)。

また、$ _POST []はフォーム要素のname属性を参照します。あなたのテキストボックスはidだけでなく、name = 'nameField'を持つ必要があります。