2011-01-15 4 views
1

Folgendes ist mein Beispielformular.So senden Array nach Post-Methode

<form METHOD="post" METHOD="post" ACTION="index.php" METHOD="post" METHOD="post" METHOD="post"> 
<input TYPE="text" NAME="array[]" /> 
<input TYPE="text" NAME="array[]" /> 
<input TYPE="text" NAME="array[]" /> 
<input TYPE="text" NAME="array[]" /> 
<input TYPE="text" NAME="array[]" /> 
<input TYPE="text" NAME="array[]" /> 
<input TYPE="text" NAME="array[]" /> 
<input TYPE="text" NAME="array[]" /> 
<input TYPE="text" NAME="array[]" /> 
<input TYPE="text" NAME="array[]" /> 
<input TYPE="submit" NAME="submit" VALUE="Submit" /> 
</form> 

Grundsätzlich habe ich 10 Eingänge von Array. Angenommen, meine Domain ist http://domain.com und die obige Datei ist index.php. Ich versuche, das Formular automatisch mit der folgenden Methode zu füllen.

http://domain.com/index.php?array[]=John & array [] = Kelly ... & array [] = Steven

Leider ist es nicht funktioniert. :(

Antwort

1

Haben Sie so etwas wie dies versucht.

<?php 
    foreach($_GET['array'] as $arr)         // Loop through the `array` variables of GET 
    echo '<input type="text" name="array[]" value="' . $arr . '" />'; // Display the the inputs 
?> 

jedoch, stellen Sie sicher, dass Sie eine Reinigungsfunktion auf $ arr verwenden XSS zu verhindern Sie auch, wenn $ _GET [ 'Array müssen prüfen '] ist gesetzt oder nicht, oder PHP wird darüber jammern.

0

Wenn Sie versuchen, das Formular aus einer GET-Anfrage (Ihre URL-Zeichenfolge) zu füllen, müssen Sie die Werte aus der HTTP-Anfrage in der $ _REQUEST erhalten array (oder $ _GET oder $ _POST, abhängig von der Formularmethode) Vorschlag: Sie sollten die Namen der Formularfelder so ändern, dass sie den Wert widerspiegeln, den sie speichern

Hinweis: Der Zugriff auf das Array $ _REQUEST, wie oben gezeigt, ist nicht empfehlenswert, da Sie überprüfen müssen, ob die Anforderungsvariablen festgelegt wurden, bevor Sie ihre Werte zurückgeben können.

<form METHOD="post" METHOD="post" ACTION="index.php" METHOD="post" METHOD="post" METHOD="post"> 
<input TYPE="text" NAME="first_name" value="<?php echo isset($_REQUEST['first_name'])?$_REQUEST['first_name']:""?>"/> 
+0

Ich wünschte, ich könnte das Formular zu GET ändern, unglücklicherweise gehört das Formular zu anderen Partei. Ich versuche ein Skript zu erstellen, um die Daten mithilfe von curl an die Party zu senden. Sie verwenden array [] als Eingabe, natürlich den Namen der Eingabe. Irgendeine Idee, wie man Daten automatisch übermittelt? –

0

Zwei Dinge zu versuchen.

  1. Sie verwenden die GET-Methode mit Ihrer Beispiel-URL, aber Ihr Formular ist auf POST festgelegt. In Ihrem PHP suchen Sie möglicherweise nach Ihren Daten in $ _POST, wenn es tatsächlich in $ _GET ist. Sie können Daten von POST und GET mit der Variablen $ _REQUEST abrufen.
  2. Sie müssen möglicherweise den []. ([] Wird% 5B% 5D wenn urlencoded.)

schließlich ein Tipp: wenn Links Crafting Daten über einen GET-Abfrage-String zu senden, ist es am beste Praxis &amp; anstelle des & ‚s zu verwenden, in die URL