Eingaben aus Kontaktformular in jeweils eigener Spalte in Excel speichern?

Rayne

Erfahrenes Mitglied
Hallo :)

Ich habe ein Kontaktformular, das mir am Ende die gemachten Eingaben per E-Mail verschickt und zudem in einer csv-Datei speichert. Mein Problem ist, dass die Eingaben einfach untereinander gespeichert werden. Da die Daten später für Serienbriefe genutzt werden sollen, müssen die Eingaben jedoch jeweils einer festen Spalte zugewiesen sein.

Im Bild im Anhang seht ihr, wie das untereinander aussieht.
Hier ist der entsprechende Code dazu:

Code:
<?php

$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));

mail("mail@server.de","Betreff hier","Form data:

Anrede: " . $_POST['field_1'] . " 
Vorname: " . $_POST['field_2'] . " 
Nachname: " . $_POST['field_3'] . " 
Unternehmen: " . $_POST['field_4'] . " 
E-Mail: " . $_POST['field_5'] . " 
Strasse: " . $_POST['field_6'] . " 
Postleitzahl/Ort: " . $_POST['field_7'] . " 
Website: " . $_POST['field_8'] . " 
Ihre Branche: " . $_POST['field_9'] . " 
Wenn Sonstige, welche?: " . $_POST['field_10'] . " 
Funktion: " . $_POST['field_11'] . " 
Moechten Sie uns noch etwas mitteilen?: " . $_POST['field_12'] . " 
Verteiler: " . $_POST['field_13'] . " 



");
$fileLine = "Anrede: " . $_POST['field_1'] . " 
Vorname: " . $_POST['field_2'] . " 
Nachname: " . $_POST['field_3'] . " 
Unternehmen: " . $_POST['field_4'] . " 
E-Mail: " . $_POST['field_5'] . " 
Strasse: " . $_POST['field_6'] . " 
Postleitzahl/Ort: " . $_POST['field_7'] . " 
Website: " . $_POST['field_8'] . " 
Ihre Branche: " . $_POST['field_9'] . " 
Wenn Sonstige, welche?: " . $_POST['field_10'] . " 
Funktion: " . $_POST['field_11'] . " 
Moechten Sie uns noch etwas mitteilen?: " . $_POST['field_12'] . " 
Verteiler: " . $_POST['field_13'] . " 

";
$filename = './files/Dateiname.csv';
if (is_writable($filename)) {

			    if (!$handle = fopen($filename, 'a'))
			    {
			         echo "Cannot open file ($filename)";
			         exit;
			    }
			    if (fwrite($handle, $fileLine) === FALSE) {
			        echo "Cannot write to file ($filename)";
			        exit;
			    }

			    fclose($handle);

			} else {
			    echo "The file  is not writable";
			}

include("confirm.html");

?>

Wenn ich stattdessen den Code so abändere, stehen alle Angaben zwar nebeneinander, aber in EINER Zelle:

Code:
$fileLine = "Anrede: " . $_POST['field_1'] . " Vorname: " . $_POST['field_2'] . " Nachname: " . $_POST['field_3'] . " Unternehmen: " . $_POST['field_4'] . " E-Mail: " . $_POST['field_5'] . " Strasse: " . $_POST['field_6'] . " Postleitzahl/Ort: " . $_POST['field_7'] . " Website: " . $_POST['field_8'] . " Ihre Branche: " . $_POST['field_9'] . " Wenn Sonstige, welche?: " . $_POST['field_10'] . " Funktion: " . $_POST['field_11'] . " Moechten Sie uns noch etwas mitteilen?: " . $_POST['field_12'] . " Verteiler: " . $_POST['field_13'] . "

Gibt es nun eine Möglichkeit, jede Eingabe jeweils einer eigenen Spalte zuzuweisen? Also dass die Anrede immer in Spalte A steht, der Vorname immer in Spalte B, Nachname immer in Spalte C etc.? Könnt ihr mir da weiterhelfen?

Danke :)
 

Anhänge

  • Excel1.jpg
    Excel1.jpg
    45,7 KB · Aufrufe: 29
Schmeiß die einleitenden Worte von jeder Zeile weg und trenne die Angaben mit einem einfachen Semikolon. Text fasst du in doppelte Anführungsstriche " ein:

PHP:
'"' . $_POST['field_1'] . '";"' . $_POST['field_2'] . "' . ...

Ist das Array von $_POST nach Index aufsteigend sortiert? Dann geht es ganz kurz per [phpf]implode[/phpf].
 
Zurück