[PHP] Array an eigene Seite übergeben

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php_array_an_eigene_seite_uebergeben_159941/page_1 - zur Vollversion wechseln!


nr1 schrieb am 11.03.2006 um 17:35

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?


kleinerChemiker schrieb am 11.03.2006 um 17:46

http://at2.php.net/serialize
-> hidden input feld


nr1 schrieb am 11.03.2006 um 17:48

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>

Das hatte ich bis jetzt so in der Art schon, mal schauen wie das mit der Funktion geht..


//edit: Ok jetzt hab ichs so mit dem serialize gemacht. Das einzige Problem: Wenn ich die Variable mit echo ausgebe, kommt ein viel längerer (vollständiger) Text, wenn ich sie allerdings in das hidden field schreibe, fehlt der Großteil
:confused:

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>


nr1 schrieb am 13.03.2006 um 13:50

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>


kleinerChemiker schrieb am 13.03.2006 um 14:21

$board=html_entity_decode(unserialize($board)); müßte $board=unserialize(html_entity_decode($board)); sein.

hth

MIK


nr1 schrieb am 13.03.2006 um 14:31

Zitat von kleinerChemiker
$board=html_entity_decode(unserialize($board)); müßte $board=unserialize(html_entity_decode($board)); sein.

Das 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..


kleinerChemiker schrieb am 13.03.2006 um 18:08

mit html_entity_decode(unserialize($board)); tust du aber zuerst deserialisieren und dann sonderzeichen wegtun.


mat schrieb am 13.03.2006 um 20:10

ich versteh echt nicht was ihr da macht.. :confused:


Maehmann schrieb am 14.03.2006 um 19:03

Zitat von mat
ich versteh echt nicht was ihr da macht.. :confused:
ich auch nur so halbert ...

Wenn du in einem Formular mehr als eine Variable weitergeben willst, warum machst du dann nicht pro Variable ein Hidden Field?


Luzandro schrieb am 15.03.2006 um 15:36

Zitat von kurtm1
Das 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..

funktioniert einwandfrei...

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