2017-02-23 7 views
-1
<form name="form1" method="post" action="test2.php"> 
    <input type="checkbox" name="checkbox1"> 
    <input type="text" name="textbox1"> 
    <input type="submit" name="submit"> 
</form> 


<?php 
    echo print_r($_POST); 
?> 

コードはArray() 1またはArray ([checkbox1] => on [textbox1] => asf [submit] => submit) 1を示しています。

配列が常に番号1に続くのはなぜわかりません。

POSTメソッドをGETメソッドに変更すると、同じことが起こります。

別の配列を使用して$_POSTの値を格納すると、同じことが再び発生します。

<?php 
    $temp = $_POST; 
    if (isset($_POST['textbox1'])) 
    $temp = "textbox1='{$temp['textbox1']}'"; 

    textbox1='asdf'1 
    Array ([textbox1] => asdf [submit] => submit) 1 
?> 
+1

ページに「1」が出力されている必要があります。隠し文字やその他のマークアップを確認しましたか? –

+0

var_dumpの後にdie()を追加する(print_rの代わりにvar_dumpを使う)とshow ouput – bxN5

+1

あなたが 'print_r'をやっていないのであれば、まだ余分な' 1'が出力されていますか? – apokryfos

答えて

4

echoprintこれはあなた(あなたのエラーを与えるだろう)の例を与えることをecho echo ($_POST);を行うようなもので、似ています。

echoを削除し、print_r($_POST);のままにしてください。

また、echoprintprint_r間の違いにthis linkをご確認ください。

+0

これは機能します!どうもありがとう ! – Steve

+0

正確には 'print_r'関数(2番目のパラメータが設定されていない)は引数をstdoutに直接出力します。 ** ALSO **は値を返します( 'true')。だから、あなたはまずstdoutに変数の内容を出力し、 'print_r'関数の戻り値をエコーし​​ています(' true'、 'echo'で' 1'にマップされています)。 –

1
<form name="form1" method="post" action="test2.php"> 
    <input type="checkbox" name="checkbox1"> 
    <input type="text" name="textbox1"> 
    <input type="submit" name="submit"> 
</form> 


<?php 
    print_r($_POST); // Remove echo 
?> 
+0

ご協力ありがとうございます! – Steve

関連する問題