myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Webmaster Talk > Entwicklung & Programmierung
Seite neu laden

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

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 03.01.12, 14:08   #1
Nakedchef
Anfänger
 
Benutzerbild von Nakedchef
 
Registriert seit: Apr 2009
Beiträge: 38
Bedankt: 56
Nakedchef ist noch neu hier! | 0 Respekt Punkte
Standard .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 ($dateiname0777); 



/** 
* 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
?>
Nakedchef ist offline   Mit Zitat antworten
Ungelesen 07.01.12, 19:04   #2
Eule66
Anfänger
 
Registriert seit: Jul 2010
Beiträge: 30
Bedankt: 12
Eule66 ist noch neu hier! | 0 Respekt Punkte
Standard

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 ($dateiname0777); 


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
Eule66 ist offline   Mit Zitat antworten
Ungelesen 07.01.12, 23:07   #3
Epeos
Ist öfter hier
 
Benutzerbild von Epeos
 
Registriert seit: Nov 2010
Beiträge: 200
Bedankt: 96
Epeos ist noch neu hier! | 0 Respekt Punkte
Standard

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)
Epeos ist offline   Mit Zitat antworten
Antwort


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

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 Uhr.


Sitemap

().