Ergebnis 1 bis 6 von 6
  1. #1
    Fairs Vortrefflicher
    Themenstarter
    Avatar von Herr Sin
    Registriert
    01.2004
    Ort
    Ravensburg
    Alter
    39
    Beiträge
    4.659

    [Joomla] FacileForms soll zwei Mails veschicken

    Hallo

    Ich nutze Joomla 1.0.12 und FacileForms. Habe soweit mein Formular am laufen. Funktioniert alles. Nur möchte ich, dass der Kunde ebenfalls eine Mail zur Bestätigung bekommt. Das ganze sieht so aus:

    Code:
    // declare globals used in this piece
    global $mosConfig_mailfrom, $mosConfig_fromname;
    
    // include FacileForms standard library
    $this->execPieceByName('ff_InitLib');
    
    // ------------------ Mail an Anmelder ------------------
    
    $content_client='
    Hallo $cf_vorname $cf_name
    
    Sie haben sich für den Kurs $cf_kurs angemeldet.';
    
    
    $this->sendMail(
        'meine.email@adresse.de',
        'MeinVorname Mein Nachname',
        ff_getSubmit('cf_email'),
        ff_getSubmit('cf_kurs').' - Kursanmeldung',
        $content_client
    );
    
    
    // ------------------ Mail an mich ------------------
    
    $content_client='
    Hallo
    
    Gerade hat sich jemand angemeldet
    
    $cf_vorname $name
    $cf_strasse
    $cf_ort
    Telefon: $cf_telefon
    Fax: $cf_fax
    Emai: $cf_email
    
    $cf_kurs - $cf_gebuehr
    
    $cf_konto
    $cf_blz - $cf_bank
    
    $cf_kommentar';
    
    
    $this->sendMail(
        'meine.email@adresse.de',
        'MeinVorname Mein Nachname',
        'meine.email@adresse.de',
        ff_getSubmit('cf_kurs').' - Kursanmeldung',
        $content_client
    );
    
    
    /*--------------------------------------------------------------------
    sendmail(
              von email,
              von name,
              an email,
              betreff,
              inhalt
            );
    --------------------------------------------------------------------*/  
    Leider bekomme ich in der Mail als Text auch die Variablennamen angezeigt. Da steht also $cf_name anstatt der tatsächliche Name, der eingetragen wurde. Kann mir jemand helfen, wie ich in meinen Mailtext die Forumlardaten bekomme?
    Gruß
    Der Sin

    (... nicht vergessen: immer Sicherungen von den Daten machen. Daten ohne Backup sind unwichtige Daten!)

  2. #2
    inaktiv
    Registriert
    08.2005
    Beiträge
    1.759
    Zitat Zitat von Herr Sin Beitrag anzeigen
    Hallo

    Ich nutze Joomla 1.0.12 und FacileForms. Habe soweit mein Formular am laufen. Funktioniert alles. Nur möchte ich, dass der Kunde ebenfalls eine Mail zur Bestätigung bekommt. Das ganze sieht so aus:
    ...

    Leider bekomme ich in der Mail als Text auch die Variablennamen angezeigt. Da steht also $cf_name anstatt der tatsächliche Name, der eingetragen wurde. Kann mir jemand helfen, wie ich in meinen Mailtext die Forumlardaten bekomme?
    Riecht nach einem Bug. Formularverarbeitung würde ich nicht mehr mit einem CMS wie Joomla machen (auch wenn das Tool meine ganze Sympathie genießt). Wie wäre eine ausgelagerte Alternative zum Beispiel gratis mit WUFOO?

    Ich kann Dir eine Formularverarbeitung auch mal fix exemplarisch aufbauen, wenn Du Interesse hast (, aber Joomla, nee, keene Ahnung).

  3. #3
    Fairs Vortrefflicher
    Themenstarter
    Avatar von Herr Sin
    Registriert
    01.2004
    Ort
    Ravensburg
    Alter
    39
    Beiträge
    4.659
    Ich habe es selber rausbekommen.

    So tut es nicht:
    Code:
    $content_client='
    
    Hallo $cf_vorname $cf_name Sie haben sich für den Kurs $cf_kurs angemeldet.';


    Und so tut es:
    Code:
    $vorname   = ff_getSubmit('cf_vorname');
    
    $name = ff_getSubmit('cf_name'); $kurs = ff_getSubmit('cf_kurs'); $content_client=" Hallo $vorname $name Sie haben sich für den Kurs $kurs angemeldet.";
    Ich glaube wichtig waren die " bei $content_client und nicht '. Aber danke für die angebotene Hilfe.
    Gruß
    Der Sin

    (... nicht vergessen: immer Sicherungen von den Daten machen. Daten ohne Backup sind unwichtige Daten!)

  4. #4
    inaktiv
    Registriert
    08.2005
    Beiträge
    1.759
    Zitat Zitat von Herr Sin Beitrag anzeigen
    Ich habe es selber rausbekommen.

    ...

    Ich glaube wichtig waren die " bei $content_client und nicht '. Aber danke für die angebotene Hilfe.
    Gerne!

    Ich vermute, mit den Anführungszeichen lagst Du völlig richtig. Allerdings hat die Art- und Weise der Zuweisung den Nachteil, dass Du von der korrekten Interpretation von (unsichtbaren) Zeilenumbrüchen abhängig ist. Kaum hast Du diese Datei anders gespeichert oder mal einen Windows-Browser verwendet, kann der Effekt sein, dass plötzlich alles in einer Zeile steht, oder dass zwischen jeder Zeile eine weitere Leerzeile erscheint.

    Daher mein Tipp, die Deklaration mit explizitien Steurezeichen durchzuführen. Das könnte dann so aussehen:
    Code:
    $content_client = "Hallo\n\n";
    $content_client .= "Gerade hat sich jemand angemeldet\n\n";
    $content_client .= sprintf("%s %s\n", strip_tags($cf_vorname), strip_tags($name));
    $content_client .= sprintf("%s\n", strip_tags($cf_strasse));
    $content_client .= sprintf("%s\n", strip_tags($cf_ort));
    $content_client .= sprintf("Telefon: %s\n", strip_tags($cf_telefon));
    $content_client .= sprintf("Fax: %s\n", strip_tags($cf_fax));
    $content_client .= sprintf("E-Mail: %s\n\n", strip_tags($cf_email));
    $content_client .= sprintf("%s - %s\n\n", strip_tags($cf_kurs), strip_tags($cf_gebuehr));
    $content_client .= sprintf("%s\n", strip_tags($cf_konto));
    $content_client .= sprintf("%s - %s\n", strip_tags($cf_blz), strip_tags($cf_bank));
    $content_client .= sprintf("%s\n", wordwrap(strip_tags($cf_kommentar), 72, "\n"));
    Das sieht zwar auf den ersten Blick etwas komplexer aus, ist aber ein zusätzlicher Schutz durch die Vorbehandlung der Zeichenketten mit strip_tags() (was auch keine 100%ige Sicherheit bietet, aber doch nahezu), um zu Verhindern, dass der Teilnehmer versucht, das Formular oder dessen Verarbeitung zu korrumpieren.

  5. #5
    Fairs Vortrefflicher
    Themenstarter
    Avatar von Herr Sin
    Registriert
    01.2004
    Ort
    Ravensburg
    Alter
    39
    Beiträge
    4.659
    Zitat Zitat von Hilarious Beitrag anzeigen
    ... um zu Verhindern, dass der Teilnehmer versucht, das Formular oder dessen Verarbeitung zu korrumpieren.
    Danke für die Ausführung. Aber kannst du mir an einem einfachen Beispiel erklären, wie jemand die Verarbeitung korrumpieren kann?
    Gruß
    Der Sin

    (... nicht vergessen: immer Sicherungen von den Daten machen. Daten ohne Backup sind unwichtige Daten!)

  6. #6
    inaktiv
    Registriert
    08.2005
    Beiträge
    1.759
    Zitat Zitat von Herr Sin Beitrag anzeigen
    Danke für die Ausführung. Aber kannst du mir an einem einfachen Beispiel erklären, wie jemand die Verarbeitung korrumpieren kann?
    Es gibt da verschiedene Probleme:

    Zum einen, wenn die vom User eingegebenen Daten auf der Folgeseite wieder angezeigt werden, eventuell weil er ein Eingabefeld nicht ausgefüllt hat und man eine nette Fehlermeldung anzeigen möchte. Gibt man die Daten hier wieder so aus, wie sie der Nutzer eigegeben habe, reicht schon ein "<script>window.open()</script> in einem der Eingabefelder aus, um zu sehen, ob es klappt. Als nächstes könnte ich diese Lücke ausnutzen, um jemand anderem eine spezielle URL per E-Mail zuschicken (am besten mit tinyurl gekürzt). Diese URL habe ich um ein kleines JavaScript erweitert, welches einen unsichtbaren iFrame mit einer Adresse auf meinem Server öffnet. Durch die URL und Dein Formular, welches jetzt die Eingabe wieder anzeigt, wird das Script möglicherweise ausgeführt und ich habe über den iFrame einen Key-Logger beim Benutzer implementiert.

    Bei E-Mails selbst ist es schon schwieriger, aber hier ist das Protokoll ja so angelegt, dass das E-Mail-Versandprogramm (SMTP, zum Beispiel sendmail) Absender, Empfänger, CC-Empfänger, usw. in jeweils eine Zeile schreibt, zum Beispiel so:
    Code:
    To: sin@apfeltalk.de
    Subject: Hallihallohalloechen
    From: teufel@hoelle.de
    Ich könnte jetzt dem Betreff statt »Hallihallohalloechen« noch einen Zeilenumbruch, hexadezimal kodiert beifügen und zusätzlich noch die Zeichenkette »Cc: angela@bundeskanzeramt.de«. Daraus würde dann
    Code:
    To: sin@apfeltalk.de
    Subject: Hallihallohalloechen
    From: teufel@hoelle.de
    Cc: angela@bundeskanzeramt.de
    ... obwohl Dein Script diese Möglichkeit, CC-Empfänger hinzuzufügen, ja gar nicht vorgesehen hat, habe ich Dein Formular zum Spammen missbraucht. Absender ist dann Dein Server.

    Zum Dritten, falls Du die E-Mails bekommst, und hast den Inhalt nicht irgendwie gefiltert, kann man Dir natürlich eine komplette HTML-Seite mit aktiven Inhalten zuschicken, die bei Dir eventuell für Schaden sorgt. In diesem Bereich kann man selbst als Mac-User nicht vorsichtig genug sein. Meine obige Lösung schützt auch nur ein bisschen, nicht aber gegen Fall zwei (der seltener ist), dafür ist zum Beispiel ein Blick bei SecurePHP hilfreich. Hier ist auch ein schönes Fallbeispiel zu finden.

    Ebenso Gefahr droht bei der Verarbeitung von Formulareingaben zu Datenbanken, Stichwort »SQL-Injection«, aber das führt jetzt schon deutlich zu weit...

    SecurePHP
    strip_tags
    htmlentities
    mysql_real_escape_string

Ähnliche Themen

  1. Mail soll Anhänge bestimmter Mails sofort drucken
    Von macchrissli im Forum AppleScript
    Antworten: 1
    Letzter Beitrag: 28.12.2006, 10:00
  2. Fehlerbehebung: Joomla & Safari
    Von mona im Forum Webhosting/DSL-Anbieter
    Antworten: 0
    Letzter Beitrag: 02.07.2006, 21:44
  3. Mail soll die mails icht automatisch abrufen!
    Von wooz im Forum Mailprogramme
    Antworten: 1
    Letzter Beitrag: 16.06.2006, 14:09
  4. e-Mails von zwei Rechnern aus abrufen?
    Von m.sherling im Forum Browser
    Antworten: 13
    Letzter Beitrag: 23.10.2005, 23:00

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •