Array dynamisch mit $POST befüllen

coldstone28

Mitglied
Hallo,

ich versuche einen Array in PHP mit dem $POST zu befüllen.
Vielleicht liege ich auch am Ansatz falsch.

Also habe folgendes Formular:
HTML:
 <form id="" action="index.php" method="post">
      <input type="text" placeholder="Name" name="Name">
      <input type="text" placeholder="Telefonnummer" name="Telefonnummer">
      <input type="submit" value="hinzufügen">
</form>

Habe jetzt folgendes versucht um es:
PHP:
$namen = array($_POST);
print_r($namen);

Er weist dem Array immer die aktuell übermittelte $POST zu.
Wie weise ich es dynamisch hinzu, damit es immer befüllt wird?
 
Also im Grunde genommen möchte ich folgendes.
Es soll jedesmal wenn auf "submit" geklickt wird, Name und Telefonnummer in eine Datei geschrieben werden.
Danach von der Datei die Daten auslesen und in eine Array packen um danach über das Array iterieren mit einer Schleife, damit ich die Daten wieder ausgeben kann.
Nun in eine Datei schreiben kein Problem, nur aus der Datei die Daten wieder auszulesen um über die Daten zu iterieren klappt irgendwie nicht.
Daher dachte ich, Pack die Daten in eine Array und schreibe Sie dann in die Datei.
Einlesen:
PHP:
if(isset($_POST)) {
    $fh = fopen("Telefonliste.txt", "a");
    foreach($_POST as $value) {
        fputs($fh, " ".$value."\n");
    }
}
 
Verstehe. Du musst dafür aber unbedingt eine Datenbank verwenden! :LOL:
Scherz beiseite: Wenn Du ein Array in einer Textdatei ablegen willst, geht das am besten, wenn Du es JSON-kodierst.

Eintrag hinzu fügen:
PHP:
$txt = file_get_contents("Telefonliste.txt");
$telelist = json_decode($txt);
if(isset($_POST)) {
    $telelist[] = $_POST;
}
$txt = json_encode($telelist);
file_put_contents($txt);

Einträge auslesen:
PHP:
$txt = file_get_contents("Telefonliste.txt");
$telelist = json_decode($txt);
foreach ($telelist as $entry) {
    // $entry ist der aktuelle Eintrag, diesen kannst Du hier ausgeben
}
 
(JSON-Dateien hab üblicherweise eine *.json Dateiendung :) Aber sonst stimme ich dem zu! Ggf. statt $telelist[] = $_POST gezielt die Daten reinlesen, sonst kommen möglicherweise unerwünschte andere $_POST-Daten auch mit rein.)
 
Einträge auslesen:
PHP:
$txt = file_get_contents("Telefonliste.txt");
$telelist = json_decode($txt);
foreach ($telelist as $entry) {
    // $entry ist der aktuelle Eintrag, diesen kannst Du hier ausgeben
}

PHP:
Parse error: syntax error, unexpected '}', expecting ';' or ',' in C:\xampp\htdocs\index.php on line 77

Bekomme beim auslesen folgende Fehlermeldung im Browser.
Weis gar nicht was an den geschweiften Klammern falsch sein soll!?

Und kann ich gezielt, die $entry einträge in HTML ausgeben?
ich meine folgendes:
HTML:
...
<p>Name</p>
<p>Telefonnummer</p>
 
Zuletzt bearbeitet:
Hm, ich kann da keinen Fehler erkennen. Die Fehlermeldung scheint vom PHP-Parser zu kommen. Welches ist denn Zeile 77?
 
Hm, ich kann da keinen Fehler erkennen. Die Fehlermeldung scheint vom PHP-Parser zu kommen. Welches ist denn Zeile 77?

Ok, keine Ahnung warum, aber nach schließen der Datei und neu einfügen des Codes jetzt geht es. :cool:
Habe da wohl irgendwo eine Klammer falsch gesetzt.

Jetzt muss ich nur noch den Inhalt Zeilenweise dynamisch in HTML einfügen:

HTML:
 <p>Name</p>
<p>Telefonnummer</p>

Vielen dank erstmals, ich versuche mal mein Glück und melde mich ggbf. wieder.:giggle:
 
Zurück