2016-11-16 21 views
0

私は通常自動的にスクリプトをアップロードし、リモートホスティングでそれらをテストしますが、数日前に小さな問題をテストするために魔法トリオApache、PHP、MySQLをそれぞれ独立してインストールしましたもっと早く。今日、$ _POST配列は完全に空であることが判明しました。それは私がテストしているものの基本的なフォームであり、リモートホスティングでは完全に機能するので、php.iniファイルをチェックしました。 enable_post_data_readingがオフに設定されていて、コメントが付いていることがわかりました(ただし、ドキュメントではデフォルトで有効になっています)。私はそれが問題だと思った。私はApacheとノートブックを再起動しましたが、$ _POST配列はまだ空で、出力はNotice: Undefined index: name in C:\Users\Marco\Proj\untitled\insert.php on line 3です。 誰にでもの提案がありますか? (私はちょうど文字列を渡しているので、問題はpost_max_sizeオプションでさえありません) ありがとう!不明な理由(ローカルホスト)の

それは私がとにかく

<?php 
include "filterFunctions.php"; 
$data = array("name" => $_POST["name"], 
       "code" => $_POST["code"], 
       "price" => $_POST["price"], 
       "checkbox" => $_POST["show"]); 
print_r($_POST); 

insert.php

<form action="insert.php" method="post"> 
    <input type="text" name="name" placeholder="name" style="display:block" /> 
    <input type="text" name="code" value="" placeholder="code" style="display:block" /> 
    <input type="text" name="price" placeholder="price" style="display:block" /> 
    <label>Show</label><input type="checkbox" name="show" value="checked" /> 
    <input type="submit" value="inserisci" style="display: block" /> 
</form> 

form.htmlコード

を投稿役に立たないですが、[EDIT]Swatantra Kのアドバイス私はPOSTがecho file_get_contents('php://input');を使用して動作しているかどうかがチェックされ、以下のように表示されます。

------WebKitFormBoundarysqxwAAdf3E55NZUK Content-Disposition: form-data; name="name" Marco 
------WebKitFormBoundarysqxwAAdf3E55NZUK Content-Disposition: form-data; name="code" 35DW 
------WebKitFormBoundarysqxwAAdf3E55NZUK Content-Disposition: form-data; name="price" 99,9 
------WebKitFormBoundarysqxwAAdf3E55NZUK Content-Disposition: form-data; name="show" checked 
------WebKitFormBoundarysqxwAAdf3E55NZUK-- 

Notice: Undefined index: name in C:\Users\Marco\Proj\untitled\insert.php on line 4 
Notice: Undefined index: code in C:\Users\Marco\Proj\untitled\insert.php on line 5 
Notice: Undefined index: price in C:\Users\Marco\Proj\untitled\insert.php on line 6 
Notice: Undefined index: show in C:\Users\Marco\Proj\untitled\insert.php on line 7 
Array () 

つまり、それは機能し、挿入された値が存在することを意味しますが、問題とその解決方法はまだわかりません。また、var_dump($_POST);にはまだarray(0) { }が表示されます。 手掛かりはありますか?

+1

を動作するか確認してください? –

+0

'$ _POST'は配列ですか?私はこれを知らなかった。 –

+0

あなたのpostmax_sizeの値は? –

答えて

0

あなたはname = "name"という2つの入力フィールドを持っていますので、phpスクリプトのこれらのフィールドの両方を参照するので、そこから1つを削除し、フォームのtype属性を定義してmultipartを割り当てます。これがうまくいくと思っています。

+0

あなたは正しいですが、倍増した名前は単なるコピーペーストエラーでした。 「バリュー・マルチパートを割り当てる」とはどういう意味ですか?空白の 'value =" "'を代入しますか? – Brigo

+2

フォーム要素にenctype = "multipart/form-data"属性を使用することを意味します。 – Afzaal

+0

残念ながら問題は解決しませんでしたが、私はPOSTメソッドを使用したときにこれを使用します; – Brigo

1

は `filterFunctions.php`ファイルが何をするん

php_value post_max_size = 256M 

を設定してみてくださいまたはPOSTが

echo file_get_contents('php://input'); 
+0

'post_max_size'を256に設定しましたが、何も変更されませんでした。' echo file_get_contents( 'php:/input '); 'は出力を生成しません。それは動作しないことを意味しますか? – Brigo

+0

HTTP POSTデータは通常、$ _POSTに格納されます。php://入力には通常PUTデータが含まれます。 –

+0

いいえ、セミフルなニュースがあります!私は 'echo file_get_contents( 'php:// input');で再試行し、それを出力します:' ------ WebKitFormBoundarysqxwAAdf3E55NZUK Content-Disposition:form-data; name = "name" Marco ------ WebKitFormBoundarysqxwAAdf3E55NZUKコンテンツの処理:フォームデータ。 name = "code" 35DW ------ WebKitFormBoundarysqxwAAdf3E55NZUKコンテンツの処理:フォームデータ。 name = "price" 99,9 ------ WebKitFormBoundarysqxwAAdf3E55NZUKコンテンツの処理:フォームデータ。すべての挿入データと、 'name =" show "がチェックされました------ WebKitFormBoundarysqxwAAdf3E55NZUK--'が出力された直後に、 '未定義インデックス:XXX'が表示されました – Brigo

関連する問題