URL: https://www.overclockers.at/coding-stuff/php_array_an_eigene_seite_uebergeben_159941/page_1 - zur Vollversion wechseln!
Hallo, suche eine Möglichkeit ein Array wieder an die Herkunftsseite zu übergeben. Sprich einfach in einem Formular mehr als nur eine einfache Variable weitergeben.
Tipps?
http://at2.php.net/serialize
-> hidden input feld
Code: PHP<?php $board=$_POST['board']; print_r($board); $board = array(array("X", "X", "X", "X"), array("X", "X", "X", "X"), array("X", "X", "X", "X"), array("X", "X", "X", "X")); ?> <form action="array.php" method="POST"> <input name="board" size="100" value="<?php echo $board ?>"> <input type="submit" value="Schuss"> </form>
Code: PHP<?php if (isset($board)) { $board=$_POST['board']; $board=unserialize($board); } else { $board = array(array("X", "X", "X", "X"), array("X", "X", "X", "X"), array("X", "X", "X", "X"), array("X", "X", "X", "X")); echo "<br><br>"; echo $board=serialize($board); echo "<br><br>"; } ?> <form action="array.php" method="POST"> <input name="board" value="<?php echo $board ?>"> <input type="submit" value="Schuss"> </form>
Inzwischen habe ich es schon einmal geschafft, dass ich das Array als String übergeben kann, und diesen String dann auf der neuen Seite wieder herausbekomme.
Allerdings fehlt/funktioniert die Rückumwandlung in ein Array nicht..
Code: PHP<?php if (isset($board)) { $board=$_POST['board']; $board=html_entity_decode(unserialize($board)); echo $board; print_r($board); } else { $board = array(array("X", "X", "X", "X"), array("X", "X", "X", "X"), array("X", "X", "X", "X"), array("X", "X", "X", "X")); print_r($board); echo "<br><br>"; echo $board=(htmlentities(serialize($board))); echo "<br><br>"; } ?> <form action="array.php" method="POST"> <input name="board" value="<?php echo $board ?>"> <input type="submit" value="Schuss"> </form>
$board=html_entity_decode(unserialize($board)); müßte $board=unserialize(html_entity_decode($board)); sein.
hth
MIK
Zitat von kleinerChemiker$board=html_entity_decode(unserialize($board)); müßte $board=unserialize(html_entity_decode($board)); sein.
mit html_entity_decode(unserialize($board)); tust du aber zuerst deserialisieren und dann sonderzeichen wegtun.
ich versteh echt nicht was ihr da macht..
ich auch nur so halbert ...Zitat von matich versteh echt nicht was ihr da macht..
Zitat von kurtm1Das kann nicht stimmen, und funzt auch nicht, da ich ja zuerst serialisiere, und dann Sonderzeichen umwandle. Umgekehrt muss ich dann eben zuerst Sonderzeichen wegtun, und dann deserialisieren..
Code: PHP<?php if (!empty($_POST)) { echo "postback...<p>"; $board=$_POST['board']; echo "serialized (from form): ". $board ."<p>"; $board = unserialize(html_entity_decode($board)); echo "unserialized: <p>"; print_r($board); $board = htmlentities(serialize($board)); } else { echo "init...<p>"; $board = array(array("X", "X", "X", "X"), array("X", "X", "X", "X"), array("X", "X", "X", "X"), array("X", "X", "X", "X")); print_r($board); echo "<br><br>"; echo $board=(htmlentities(serialize($board))); echo "<br><br>"; } ?> <form action="array.php" method="POST"> <input name="board" value="<?php echo $board ?>"> <input type="submit" value="Schuss"> </form>
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025