flo: Frage zum Formmailer von Patrick Canterino

Hallo,
für meine Diplomarbeit will ich eine Umfrage machen. Zu diesem Zweck nutze ich den PHP-Formmailer von Patrick Canterino (http://selfaktuell.teamone.de/tippstricks/php/form-mail/index.htm). Soweit funktioniert auch alles wunderbar. Allerdings erwarte ich einig hundert Antworten, also E-Mails. Nun haben die mit diesem Formmiler zu erwartenden Mails den gleichen Absender und Betreff. Gibt es die Möglichkeit, sie zu nummerieren oder das Datum in die Betreffzeile einzufügen?

Es wäre nett, wenn mir jemand eine einfache Lösung anbieten könnte.

Gruß Flo

  1. Hallo,

    Datum in den Betreff:

    Welchen Betreff sollen die Mails erhalten?

    $strSubject    = 'Feedback';

    ändern in:

    Welchen Betreff sollen die Mails erhalten?

    $strSubject    = 'Feedback '.date("d.m.Y", mktime());

    Grüße
    Jeena Paradies

    --
    Die Homepage einer Firma sollte doch eigentlich Userfreundlich sein?
    http://jeenaparadies.de/weblog/2004/mai/userfreundlich/
    Kinder schlagen zu Erziehungszwecken ist in Deutschland verboten!
    http://jeenaparadies.de/artikel/kinderschlagen/
    Jeenas Bannertauschportal; selbstgemacht ;-)
    http://jeenasbannerbude.de
    1. Hallo Jeena,

      $strSubject    = 'Feedback '.date("d.m.Y", mktime());

      Der zweite Parameter, den mktime() zurückgeben soll, ist nicht
      notwendig, da standartmäßig automatisch der Zeitstempel der
      aktuellen Zeit angegeben wird, sofern nicht anders angegeben :)

      bis morgen,

      WauWau

      --
      ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
      Self ist der WauWau
  2. Moin!

    Das mit Datum und Uhrzeit geht etwa so:

    $strSubject    = 'Feedback vom' .date(" d.m.Y, H:i:s");

    Selbstredend kanns Du das auch anders verwenden (ist besser sortierbar):

    $strSubject    = 'Feedback vom' .date("Y-m-d H:i:s");
    Dies lässt sich optimal anhand des Subjektes sortieren, auserdem kannst Du anhand des Textes "Feedback" eine Regel (Outlook) oder einen Filter (Ximian Evolution) erstellen.

    Eine Lösung mit einer Nummer setzt voraus, dass Du die Zahl in eine Datenbank oder ein Flatfile (einfache Textdatei) schreiben kannst.

    function formNumber() {

    # Konfiguration:
      $strFilename="./formNumber.txt";

    # Lesen der Datei
      $FILE = fopen ($strFilename, "r") or return 0;
      $intNumber = fread ($FILE, filesize ($strFilename)) or return 0;
      fclose ($FILE);

    # Addieren von 1
      $intNumber++;

    #Schreiben der Datei:
      $FILE = fopen ($strFilename, "w");
      fwrite($FILE, $intNumber);
      fclose ($FILE);
    return $intNumber;
    }

    Setze diese Funktion in das Skript (z.B. hinter ### Ende Konfiguration ###)

    Nutzen der Funktion:

    $strSubject = 'Feedback Nr. '.formNumber();

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    1. Moin!

      Was vergessen: Du solltest das Flatfile (im Beispiel "formNumber.txt") zuvor anlegen.

      Es sollte genau eine 0 (Null) enthalten. Keinen weiteren Zeilenumbruch, kein Leerzeichen. Natürlich geht auch jede andere Zahl. (Dezimaltrennzeichen ist aber ein Punkt :))

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix®

      --
      Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
      1. Gute Morgen,
        tausend Dank für die Hilfe. Die Datierung funktioniert wunderbar und ist eine große Hilfe. Ich werde mich jetzt mal mit der Flatfile-Variante beschäftigen.

        Euch ein wunderschönes Wochenende, auch wenn das Wetter bsch***en ist.

        Gruß flo

      2. Guten Morgen nochmals,
        wie schon gesagt, funktioniert die Datierung und das genügt mir ja eigentlich auch... aber

        Ich habe Dein Skript auch mal in den Code kopiert und bekomme die folgende Fehlermeldung vom Server:

        Parse error: parse error in /home/knobloch/public_html/master/poll.php on line 22

        Da in Line 22 der Code zum öffnen der Datei steht
        $FILE = fopen ($strFilename, "r") or return 0;
        gehe ich davon aus, dass serverseitig das Lesen bzw. Schreiben einer Datie unterbunden wird, mir somit die Berechtigung fehlt eine Flatfile-Datenbank zu nutzen.

        Gehe ich recht in der Annahme?

        Nochmals ein schönes Wochenende,
        Gruß Flo

        1. Hi,

          $FILE = fopen ($strFilename, "r") or return 0;
          gehe ich davon aus, dass serverseitig das Lesen bzw. Schreiben einer Datie unterbunden wird, mir somit die Berechtigung fehlt eine Flatfile-Datenbank zu nutzen.

          Wenn Du anstelle von "return 0;" die Fehlermeldung ausgeben würdest, wäre es wesentlich einfacher, die Fehlerursache zu ermitteln.

          cu,
          Andreas

          --
          MudGuard? Siehe http://www.Mud-Guard.de/
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        2. Hello,

          Parse error: parse error in /home/knobloch/public_html/master/poll.php on line 22

          Da in Line 22 der Code zum öffnen der Datei steht
          $FILE = fopen ($strFilename, "r") or return 0;
          gehe ich davon aus, dass serverseitig das Lesen bzw. Schreiben einer Datie unterbunden wird, mir somit die Berechtigung fehlt eine Flatfile-Datenbank zu nutzen.

          Gehe ich recht in der Annahme?

          Nein. Ein ParseError ist ein ParseError und kein Laufzeit- oder Systemfehler. Es wird es falsch sein in Zeile 21, was der Parser aber erst in Zeile 22 merkt. In der von Dir übermittelten Zeile sehe ich keinen Fehler.

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        3. Moin!

          Parse error: parse error in /home/knobloch/public_html/master/poll.php on line 22

          $FILE = fopen ($strFilename, "r") or return 0;

          gehe ich davon aus, dass serverseitig das Lesen bzw. Schreiben einer Datie unterbunden wird, mir somit die Berechtigung fehlt eine Flatfile-Datenbank zu nutzen.

          Nein. Ich vermute das Problem liegt weiter oben. Ein nicht geschlossenes Pärchen von Quotas ("foo") beispielsweise. Poste doch mal den gesamten Teil zwischen <?php und ?>.

          Natürlich solltest Du sicher sein, dass der Apache die Datei lesen und schreiben darf. Je nach Deiner Konfiguration ist dafür nicht nur das setzen der Rechte nötig, sondern Du musst Dich ggf. auch um die php_safe_??? - Einstellungen kümmern/informieren.  <? phpinfo(); ?> hilft hier.

          Aber so weit ist Dein Skript gar nicht gekommen. Die Interpretation wurde schlicht wegen eines Syntaxfehlers abgebrochen.

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
  3. Hello,

    werden immer die gleichen Fragen gestellt?
    Dann würde sich doch die Sammlung der Daten direkt aus dem Formular in einer Tabelle anbieten. Bei einigen Hundert braucht man noch nicht einmal eine Datenbank.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
  4. Hi @all!

    Es wäre nett, wenn mir jemand eine einfache Lösung anbieten könnte.

    Du könntest die Leute bitten im Formular einen Namen anzugeben:
    <input type="text" name="absendername" value="" size="10">

    Dann könntest du schreiben:
    $strFrom       =  $_POST['absendername'];

    müsstest aber vorher noch prüfen, ob in der Variablen $_POST['absendername'] etwas drin steht und solltest vielleicht auch noch htmlspecialchars() anwenden.

    MfG, Dennis.

    --
    Hinweise:
    Fragen zu Formularen beantwortet http://tutorial.riehle-web.com
    Meine HP: http://www.riehle-web.com