Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
03.01.12, 14:08
|
#1
|
Anfänger
Registriert seit: Apr 2009
Beiträge: 36
Bedankt: 56
|
.csv neu schreiben wenn diese noch nicht vorhanden ist??
Hallo...
Ich hab da ein Problem mit einem php S*****...
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 S***** eine neue .csv schreibt wenn diese noch nicht vorhanden.
PHP-Code:
<?php
/*
* Created by xxxxxxx
*/
/**
* 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, "x+");
/**
* 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;
?>
|
|
|
07.01.12, 19:04
|
#2
|
Anfänger
Registriert seit: Jul 2010
Beiträge: 30
Bedankt: 12
|
Hallo Nakedchef,
ergänze doch einfach deine Überprüfung durch ein:
Zitat:
PHP-Code:
/** * 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. */
/*DATEI ANLEGEN */
$dateihandle = fopen($dateiname, "w"); fclose($dateihandle);
@chmod ($dateiname, 0777);
}
|
Normalerweise sollte bei diesem "Modus"-Parameter die Datei neu (leer) angelegt werden.
(Natürlich sollte der Webserver in dem gewählten Verzeichnis auch Schreibrechte haben.)
(Quelle: [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] )
Ich hoffe das hilft? Viel Erfolg!
Eule66
|
|
|
07.01.12, 23:07
|
#3
|
Ist öfter hier
Registriert seit: Nov 2010
Beiträge: 198
Bedankt: 96
|
Den ganzen Block ab fopen versteh ich nicht.
Erst versuchst Du eine neue Datei mit fopen anzulegen. Dann schreibst du was rein. Dann prüfst Du, ob die Datei da ist, falls ja, setzt Du Lese-, Schreib- und Ausführrechte für das gesamte Universum und dann behauptest Du ohne irgendeine Fehlerprüfung, dass die Beratungsanfrage übermittelt wurde?
Du möchtest Dir die Modi von [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] in der PHP-Doku anschauen und dann den Modus "a" benutzen. Der öffnet die Datei zum Schreiben und setzt die Schreibposition ans Dateiende. Existiert die Datei nicht, wird sie erzeugt. Wenn außer PHP sonst niemand auf die Datei zugreifen muss, dann brauchst Du auch den chmod nicht und dann musst Du noch prüfen, ob das ganze fopen, fwrite, fclose Gedöns irgendwelche Fehler produziert, die Du auch entsprechend abfangen und auswerten musst.
Nachtrag: Mit [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] geht das ganze in einem Befehl.
__________________
On a long enough timeline, the survival rate for everyone drops to zero. (Fight Club)
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 Uhr.
().
|