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?
 

coldstone28

Mitglied
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");
    }
}
 

Sempervivum

Erfahrenes Mitglied
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
}
 

ComFreek

Mod | @comfreek
Moderator
(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.)
 

coldstone28

Mitglied
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:

Sempervivum

Erfahrenes Mitglied
Hm, ich kann da keinen Fehler erkennen. Die Fehlermeldung scheint vom PHP-Parser zu kommen. Welches ist denn Zeile 77?
 

coldstone28

Mitglied
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: