stephan: export html formular nach csv

hallo zusammen,

auf einer hp benutze ich benutze ein php-skript, welches die daten aus einem html-formular an meine e-mail-add schickt.

jetzt möchte ich allerdings zusätzlich, dass die die einzelnen parameter in eine csv geschrieben werden. habe für eine txt mal fogendes benutzt und hab es versucht in das skript unten einzubauen.

$userdatei = fopen ("123.csv","a");
      fwrite($userdatei, $vorname);
      fwrite($userdatei, "|");
      fwrite($userdatei, $nachname);
      fwrite($userdatei, "|");
      fwrite($userdatei, $strasse);
      fwrite($userdatei, "\n");
      fclose($userdatei);

um die werte der variablen zu ermitteln hab ich den anfang vom skript wie folgt geändert:

<?php
$vorname = $_POST["vorname"];
$nachname = $_POST["nachname"];
$strasse = $_POST["strasse"];

nun da es jetzt aber keine txt, sondern ne csv ist, soll natürlich keine trennung durch "|" erfolgen, sondern die werte in die jeweils nächste spalte geschrieben werden.

das (original)skript sieht wie folt aus:

<?php

Konfiguration

Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!

An welche Adresse sollen die Mails gesendet werden?

$strEmpfaenger = '123@123.de';

Welche Adresse soll als Absender angegeben werden?

(Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)

$strFrom       = '"Test" 123@123.de';

Welchen Betreff sollen die Mails erhalten?

$strSubject    = 'Test';

Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?

Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!

$strReturnhtml = 'http://www.123.de/anfragebestaetigung.html';

Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?

$strDelimiter  = ":\t";

Ende Konfiguration

if($_POST)
{
 $strMailtext = "";

while(list($strName,$value) = each($_POST))
 {
  if(is_array($value))
  {
   foreach($value as $value_array)
   {
    $strMailtext .= $strName.$strDelimiter.$value_array."\n";
   }
  }
  else
  {
   $strMailtext .= $strName.$strDelimiter.$value."\n";
  }
 }

if(get_magic_quotes_gpc())
 {
  $strMailtext = stripslashes($strMailtext);
 }

mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
  or die("Die Mail konnte nicht versendet werden.");
 header("Location: $strReturnhtml");
 exit;
}

?>

wie bekomme ich den fopen-befehl da jetzt richtig rein und wie formuliere ich diesen korrekt? also wert1=spalte1, wert2=spalte2

danke und gruß,
stephan

  1. habe jetzt mal ein wenig rumexperimentiert und bin derzeit bei:

    <?php
    $a = $_POST["vorname"];
    $b = $_POST["nachname"];

    $fh=fopen('123.csv', 'a');
    fwrite($fh, "$a;$b;/n");
    fclose($fh);

    ?>

    jetzt hab ich noch ein problem:

    das ist ja jetzt ne seperate php-datei.. funktioniert zwar, aber ich will mit dem formular ja nicht nur auf diese csv.php zugreifen, sondern der export-befehl soll in die erste php eingebunden werden.

    wohin also damit??

    1. Grüße,
      eine csv datei ist eigentlich nur eine textdatei, in der jede zeile mit "delimitern" in "spalten" getrennt werden kann. du schreibst mit putcsv() und hast nachher eine doofe textdatei, die csv unterm strich eigentlich ist.

      gibt es einen grunt waum du csv nehmen willst?

      welche vorteile gegenüber txt versprichst du dir, und

      was spricht gegen mysql oder sqlite, falls die keine vollwertige db zur verfügung steht?

      MFG
      bleicher

      --
      __________________________-
      Die versprechen ernsthaft werbefreien hosting?
      1. Lieber bleicher,

        eine csv datei ist eigentlich nur eine textdatei, in der jede zeile mit "delimitern" in "spalten" getrennt werden kann. du schreibst mit putcsv() und hast nachher eine doofe textdatei, die csv unterm strich eigentlich ist.

        fputcsv()

        was spricht gegen mysql oder sqlite, falls die keine vollwertige db zur verfügung steht?

        Was spricht deiner Meinung nach dagegen, MySQL als vollwertige Datenbank zu bezeichnen?

        Gruß
        Christoph

        1. Grüße,

          Was spricht deiner Meinung nach dagegen, MySQL als vollwertige Datenbank zu bezeichnen?

          "oder sqLITE, falls keine vollwertige datenbank..." also entweder MySQL oder die schwächere sqlite. komas.
          MFG
          bleicher

          --
          __________________________-
          Die versprechen ernsthaft werbefreien hosting?
          1. Hallo,

            "oder sqLITE, falls keine vollwertige datenbank..." also entweder MySQL oder die schwächere sqlite.

            Das lässt sich eben auch anders verstehen.

            komas.

            Bitte?

            Gruß
            Christoph

            1. Hello,

              Das lässt sich eben auch anders verstehen.

              komas.

              Bitte?

              Na, Graf Bleicher sind nach Diktat in die Komas gefallen...

              Liebe Grüße aus Syburg bei Dortmund

              Tom vom Berg

              --
              Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de
              1. Hallo,

                Na, Graf Bleicher sind nach Diktat in die Komas gefallen...

                in mehrere gleichzeitig? Multiple Narkolepsie?

                fup

                Gruß
                Christoph

                1. Grüße,

                  in mehrere gleichzeitig? Multiple Narkolepsie?

                  Zu irgendwass muss eine Persönlichkeitsspaltung ja gut sein?

                  das Wort "komas" ist übrigens der Rest vom unvollständig gelöschten Satz, der ursprünglich "ich versuchte es ja zu akzentieren - mit komas." lautete.

                  [       ]<-an dieser Stelle will ich meine unsicherheit, im Bezug auf das Geschlecht des Satzes, ausdrücken.

                  MFG
                  bleicher

                  --
                  __________________________-
                  Die versprechen ernsthaft werbefreien hosting?
    2. habe jetzt mal ein wenig rumexperimentiert und bin derzeit bei:

      <?php
      $a = $_POST["vorname"];
      $b = $_POST["nachname"];

      $fh=fopen('123.csv', 'a');
      fwrite($fh, "$a;$b;/n");
      fclose($fh);

      ?>

      Du solltest dir die Funktion fputcsv() anschauen. Deine Funktion wird spätestens dann für Probleme sorgen, wenn du mal etwas mit einem Semikolon speichern willst.