Mailinglisten-Archive |
Hi Candid, Zitat von Candid 'Dogfish' Dauth <Candid.Dauth at web.de>: > > Das ist was anderes als im Original-Post. Da hiess es: > > > [..] , ein Array per POST/GET zu übertragen, [..] > > Okay, da hatte ich mich wohl ein Bisschen undeutlich ausgedrückt. > > > > Mach doch mal print_r($array_name) Dann siehst Du ob es ein Array ist > > und was drin steht. > > Wie bereits gesagt: Ich erhalte nur den String "Array". Wenn ich die Funktion > ausführe, steht da nur "Array". Würde es sich um ein Array handeln, stände > dort ja mindestens "Array ( )". Greife ich per $_POST['bla'][0] oder sonst > wie auf den Wert zu, erhalte ich ein simples "A", wie es bei Strings der Fall > ist. > > Ich hoffe, es ist jetzt klarer, was mein Problem ist. ich habe folgenden Verdacht: Du hast eine PHP-Seite mit einem Formular, dass Du an eine zweite PHP-Seite mit der Methode POST abschickst. Dabei scheint es so zu sein, dass Du dynamisch in den value-Parameter eines input-Felds des Formulars den Inhalt einer PHP-Variable vom Typ Array einsetzt und dass Du Dich wunderst, dass auf der zweiten Seite anstatt des Array-Objekts nur der String "Array" in der $_POST-Variable ankommt. D.h. Deine Seiten koennten in etwa so aussehen: Seite 1: <?php $einArray = Array('Candid', 'Dogfish', 'Dauth', 'Candid.Dauth at web.de'); ?> <form action="meineVerarbeitungsseite.php" method="post"> <input type="hidden" name="derArray" value='<?php echo($einArray); ?>'></input> <input type="submit" value="submit"></input> </form> Seite 2: <?php echo($_POST['derArray']); // gibt als Wert "Array" aus echo($_POST['derArray'][0]); gibt als Wert "A" aus ?> Damit das funktioniert, was Du moechtest, musst Du die Funktionen serialize() und unserialize() verwenden: http://de.php.net/manual/en/function.serialize.php http://de.php.net/manual/en/function.unserialize.php Etwas so: Seite 1: <input type="hidden" name="derArray" value='<?php echo(serialize($einArray)); ?>'></input> Seite 2: <?php $_POST['derArray'] = str_replace('\"', '"', $_POST['derArray']); echo($_POST['derArray']); // gibt serialisierten Array aus $derArray = unserialize($_POST['derArray']); echo($derArray[0]); // gibt "Candid" aus ?> So in etwa. :-) Ich hoffe, dass Dein Problem war und dass ich es auf diese Weise geloest habe. :-) Die Zeile $_POST['derArray'] = str_replace('\"', '"', $_POST['derArray']); ist uebrigens nur erforderlich, sofern der Server bei der Uebergabe der Formularfelder per automatisch addslashes() ausfuehrt. Viele Gruesse Lutz
php::bar PHP Wiki - Listenarchive