2017-02-23 2 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); 
?> 

Der Code zeigt Array() 1 oder Array ([checkbox1] => on [textbox1] => asf [submit] => submit) 1.

Ich verstehe nicht, warum das Array immer die Nummer 1 folgt.

Wenn ich POST Methode zu GET Methode ändern, die gleiche Sache passieren.

Wenn ich ein anderes Array verwenden, um den Wert von $_POST zu speichern, passiert das Gleiche wieder!

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

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

Es muss etwas auf Ihrer Seite sein, das die '1' ausgibt Haben Sie nach versteckten Zeichen oder anderem Markup gesucht? –

+0

add die() nach var_dump (benutze var_dump statt print_r) und zeige output – bxN5

+1

Wenn du kein 'print_r' machst siehst du immer noch, dass extra '1' ausgegeben wird? – apokryfos

Antwort

4

echo und print sind ähnlich, das ist wie echo echo ($_POST); tun Sie ein Beispiel geben (die Sie einen Fehler geben würde).

Entfernen Sie echo und lassen Sie nur print_r($_POST);.

Überprüfen Sie auch this link auf Unterschiede zwischen echo, print und print_r.

+0

Es funktioniert! Danke vielmals ! – Steve

+0

Um genau zu sein: 'print_r' Funktion (ohne zweiten Parametersatz) druckt das Argument direkt auf stdout. It ** ALSO ** gibt einen Wert zurück ('true'). Was Sie also gemacht haben, war, dass Sie Variableninhalte zuerst auf stdout ausgaben, und dann echo'ing return value von 'print_r' function (' true', auf '1' durch' echo' abgebildet). –

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

Danke für Ihre Hilfe !! – Steve