.csv neu schreiben wenn diese noch nicht vorhanden ist****

Jan Hoffmann

Grünschnabel
Hallo...
Ich hab da ein Problem mit einem php Script...
Dieses soll Daten aus einem Formular in eine auf dem Server liegende .csv schreiben. Das funktioniert auch, solange die genannt Datei auf dem Server liegt. Ich möchte jetzt aber dass das Script eine neue .csv schreibt wenn diese noch nicht vorhanden.
PHP:
<?php 
/* 
* Created by Anna Busch/Jan Hoffmann 
*/ 

/** 
* Datei Name, wo die Daten gespeichert werden 
sollen 
*/ 
$dateiname = 'anfragen/kredit/daten.csv'; 
/** 
* Prüfen ob die Variable ein Wert zugewiesen 
wurde. Ansonsten werden diese Variablen 
deklariert. 
*/ 
if (!isset($_POST['anrede'])) $_POST['anrede'] = ''; 
if (!isset($_POST['vorname'])) $_POST['vorname'] = ''; 
if (!isset($_POST['nachname'])) $_POST['nachname'] = ''; 
if (!isset($_POST['strasse'])) $_POST['strasse'] = ''; 
if (!isset($_POST['plz'])) $_POST['plz'] = ''; 
if (!isset($_POST['ort'])) $_POST['ort'] = ''; 
if (!isset($_POST['email'])) $_POST['email'] = ''; 
if (!isset($_POST['telefon'])) $_POST['telefon'] = ''; 
if (!isset($_POST['beruf'])) $_POST['beruf'] = ''; 
if (!isset($_POST['kreditvalue'])) $_POST['kreditvalue'] = ''; 
if (!isset($_POST['kredit_monate'])) $_POST['kredit_monate'] = ''; 
if (!isset($_POST['verwendung'])) $_POST['verwendung'] = ''; 
if (!isset($_POST['tag'])) $_POST['tag'] = ''; 
if (!isset($_POST['zeit'])) $_POST['zeit'] = ''; 
if (!isset($_POST['kommentar'])) $_POST['kommentar'] = ''; 
if ( isset($_POST["einwilligung"]) && $_POST["einwilligung"] == "on" ){ 
// checkbox wurde "ausgewählt" 
} else{ 
// checkbox wurde nicht "ausgewählt" 
} 


if (!isset($_POST['senden'])) $_POST['senden'] = 
''; 
$meldung = ''; 
/** 
* Prüfen der Variable $_POST['senden'] ob diese 
ein Wert hat. 
*/ 
if ($_POST['senden'] == 'senden') { 
/** 
* Zeile aufbauen, die in die CSV-Datei am Ende 
geschrieben werden soll 
*/ 
$inhalt = 
$_POST['anrede'].';'. 
$_POST['vorname'].';'. 
$_POST['nachname'].';'. 
$_POST['strasse'].';'. 
$_POST['plz'].';'. 
$_POST['ort'].';'. 
$_POST['email'].';'. 
$_POST['telefon'].';'. 
$_POST['beruf'].';'. 
$_POST['kreditvalue'].';'. 
$_POST['kredit_monate'].';'. 
$_POST['verwendung'].';'. 
$_POST['tag'].';'. 
$_POST['zeit1'].' '. 
$_POST['zeit2'].';'. 
$_POST['kommentar']."\n"; 
/** 
* Datei öffnen und den Dateizeiger auf das 
Ende der CSV Datei legen, wenn die Datei 
noch nicht vorhanden ist wird versucht 
diese anzulegen. Wichtig ist, dass die 
Skriptdatei die Rechte zum anlegen einer 
Datei hat. 
*/ 


$handle = @fopen($dateiname, "a+"); 
/** 
* Schreiben der Zeile, in der CSV Datei 
*/ 
fwrite($handle, $inhalt); 
/** 
* Datei wieder schließen 
*/ 
fclose ($handle); 
/** 
* Prüfen ob die CSV Datei existiert 
*/ 
if (file_exists($dateiname) == FALSE) { 

/** 
* Die schreib Rechte ändern bei der CSV 
Datei, damit das nächste mal diese 
beschrieben werden kann. 
*/ 
@chmod ($dateiname, 0777); 

} 

/** 
* Ausgabemeldung erstellen 
*/ 
$meldung = '<font color="green">Ihre Beratungsanfrage wurde erfolgreich übermittelt.</font>'; 

} 
/** 
* Prüfen ob eine Ausgabemeldung in der Variable 
$meldung hinterlegt wurde, wenn eine 
Ausgabemeldung vorhanden ist wird diese per 
Echo ausgegeben. 
*/ 
if ($meldung != '') echo $meldung; 
?>
 
Zuletzt bearbeitet:
Modus Funktion Dateizeiger Anlegen?
==========================================================
r Lesen Anfang Nein
r+ Lesen und Schreiben Anfang Nein
w Schreiben Anfang Ja
w+ Lesen und Schreiben Anfang Ja
a Schreiben Ende Ja
a+ Lesen und Schreiben Ende Ja
 
Die Schreibmodis hab ich schon alle probiert...
Er gibt dann folgende Fehler aus, wenn die Datei noch nicht vorhanden....

Warning: fwrite(): supplied argument is not a valid stream resource in /www/htdocs/xxxxxx/beispiel.php on line 81

Warning: fclose(): supplied argument is not a valid stream resource in /www/htdocs/xxxxxx/beispiel.php on line 85
 
Also mit
PHP:
$handle = fopen($dateiname, "a+");
Sollte die Datei neu angelegt werden,
ansonsten musst du chmod vom Ordner anpassen.
 
Zurück