Formularinhalte in Dateien speichern über PHP
Nachdem wir nun über ein Formular die Daten erfasst und kontrolliert haben, werden die Daten zeilenweise in einer Datei gespeichert. Im folgenden Beispiel ist der Bereich der Dateierfassung per Formular auf das nötigste reduziert - für die Datenkontrolle und Validierung sehen Sie bitte im Kapitel Formularauswertung nach. Hier geht es jetzt primär um das Speichern der erfassten Inhalte.
PHP-Quellcode: Formular für Programm emailerfassung.php
<?php
// Grundformular gespeichert unter dem Namen: emailerfassung.php
?>
<form action="emailerfassung.php" method="get">
<p>Ihre E-Mail-Adresse<br>
<input type="Text" name="email"></p>
<p>Name:<br>
<input type="Text" name="name"></p>
<input type="Submit" name="" value="speichern">
</form>
Wie beim Affenformular kommt nun der auswertende Teil hinzu. Dabei sollte für den laufenden Betrieb noch eine Evaluierung der Daten erfolgen, siehe Kapitel Formularauswertung.
PHP-Quellcode: Programmteil zum Speichern von Formulareingaben in Dateien
<?php
if ( $_GET['email'] <> "" )
{
// und nun die Daten in eine Datei schreiben
// Datei wird zum Schreiben geöffnet
$handle = fopen ( "anfragen.txt", "w" );
// schreiben des Inhaltes von email
fwrite ( $handle, $_GET['email'] );
// Trennzeichen einfügen, damit Auswertung möglich wird
fwrite ( $handle, "|" );
// schreiben des Inhalts von name
fwrite ( $handle, $_GET['name'] );
// Datei schließen
fclose ( $handle );
echo "Danke - Ihre Daten wurden speichert";
// Datei wird nicht weiter ausgeführt
exit;
}
?>
<form action="emailerfassung.php" method="get">
<p>Ihre E-Mail-Adresse<br>
<input type="Text" name="email"></p>
<p>Name:<br>
<input type="Text" name="name"></p>
<input type="Submit" name="" value="speichern">
</form>
Je nach PHP-Version wird die Anweisung if ( $_GET['email'] <> "" )
Probleme machen. Es kommt beim ersten Aufruf eine Warnung, dass eine Variable abgefragt wird, die bisher nicht verwendet wurde.
Hier gibt es 2 Möglichkeiten. Entweder die Variable setzen (siehe https://www.php-kurs.com/null-coalescing-operator.htm) oder einfach Abfragen, ob die Variable bereits genutzt wird über isset()
:
<?php
if ( isset($_GET['email']) and $_GET['email'] <> "" )
{
// und nun die Daten in eine Datei schreiben
// Datei wird zum Schreiben geöffnet
Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).
Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button: