przesyłanie tablic postem

0

Witam
mam skrypt:

$topic = $_POST['topic'];

foreach($topic as $topic => $war) 
	
	echo '<strong>' . $war. '</strong> <br />';

gdzie $topic to tablica i teraz jak przesłać tablicę $topic do następnego pliku parser.php
kombinuję tak ale coś nie chce działąć:

echo '<form action="parser.php" method="post">
	<input type="hidden" value="'.$topic.'" name="topic[]" />
	<input type="submit" value="wyslij" />
</form>';

i po przesłaniu chcę od nowa sobie wypisać pętlą foreach. Oczywiście w pliku parser.php odbieram w ten sam sposób. Co robię nie tak? A może jest inny sposób na to?

0

Możesz spróbować na sesjach, chociaż nie jestem pewien.

0

na przykład

$tablica = base64_encode(serialize($tablica)); // <- tu masz tablicę zamienioną w string który możesz normalnie przekazywać

$tablica = unserialize(base64_decode($tablica)); // <- tu masz z powrotem tablicę z tego stringa

ewentualnie możesz normalnie przekazać całą tablicę, ale musisz to zrobić w pętli i tak samo jak wypisujesz teraz ten strong z warem to zamiast strong dać input i zamiast $topic dać $war - musisz tylko jeszcze to przepuścić dodatkowo przez między innymi htmlspecialchars żeby się uchronić przed XSSem

0

robię tak:

$topic = $_POST['topic'];
 
foreach($topic as $topic => $war) 
 
        echo '<strong>' . $war. '</strong> <br />';
 

echo '<form action="parser.php" method="post">
        <input type="hidden" value="'.base64_encode(serialize($_POST['topic'])).'" name="topic[]" />
        <input type="submit" value="wyslij" />
</form>';

i w pliku parser.php tak:

$topic = unserialize(base64_decode($_POST['topic']));
foreach($topic as $topic => $war) 
 
        echo '<strong>' . $war. '</strong> <br />';

jednak zwraca błąd

0

bo wtedy już nie "topic[]" tylko "topic"
a poza tym pisz jaki błąd

1 użytkowników online, w tym zalogowanych: 0, gości: 1