tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
258
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Jan Hoffmann Jan Hoffmann ist offline Grünschnabel
    Registriert seit
    May 2011
    Beiträge
    3
    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-Code:
    <?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 ($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
    ?>
    Geändert von Jan Hoffmann (03.01.12 um 16:16 Uhr)
     

  2. #2
    Loddar1 Loddar1 ist offline Mitglied Silber
    Registriert seit
    May 2007
    Beiträge
    97
    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
     

  3. #3
    Jan Hoffmann Jan Hoffmann ist offline Grünschnabel
    Registriert seit
    May 2011
    Beiträge
    3
    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
     

  4. #4
    Loddar1 Loddar1 ist offline Mitglied Silber
    Registriert seit
    May 2007
    Beiträge
    97
    Also mit
    PHP-Code:
    $handle fopen($dateiname"a+"); 
    Sollte die Datei neu angelegt werden,
    ansonsten musst du chmod vom Ordner anpassen.
     

Ähnliche Themen

  1. INSERT aber nur wenn Datensatz noch nicht vorhanden ist.
    Von mafin im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 17.12.08, 10:41
  2. Antworten: 3
    Letzter Beitrag: 22.10.07, 08:31
  3. Antworten: 2
    Letzter Beitrag: 22.09.07, 10:34
  4. Element in Array einfügen, wenn noch nicht vorhanden
    Von kampfspatz im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 1
    Letzter Beitrag: 29.09.04, 14:04
  5. Antworten: 4
    Letzter Beitrag: 19.07.04, 13:02