Hallo zusammen,
ich habe ein kleines Problem mit einem PHP-Script.
Ich habe eine Internetseite mit einem Kontaktformular erstellt. Dieses Kontaktformular besteht aus mehreren Textfelder UND Optionsfeldern zum „ankreuzen“.
Aus den Eingaben in den Feldern wird über ein PHP-Script ein Mail erzeugt und dann an einen in dem Script fest definierten Mail-Empfänger geschickt.
DAS klappt auch einwandfrei…
Nun habe ich den blöden Effekt, dass in dem generierten Mail grundsätzlich ALLE Felder aufgeführt werden; also auch die, bei denen nichts eingetragen bzw. angekreuzt wurde.
Nun meine Frage:
Welches Statement muß in dem PHP-Script mit eingebunden werden, damit bei der Generierung des Mails NUR die Felder berücksichtigt werden, in denen auch etwas eingetragen zw. angekreuzt wurde???
Über eine Antwort sei auf diesem Wege schon einmal recht herzlich gedankt!
das kommt ganz darauf an wie die Mail generiert wird. Ohne deinen Programmcode wird dir hier niemand weiterhelfen können.
Allerdings würde ich aus deiner Fehlerbeschreibung fast schließen, dass du gar kein PHP-Script verwendest das die Mail erzeugt. Du hast nicht zufällig im HTML-Formular als „action“ direkt „mailto:die@mailadresse“ eingetragen?
Wenn du den Code lieferst, der die Mail zusammenbaut kann ich gerne drüberschauen.
„Von alleine“ macht PHP keine Mailnachricht, da muss explizit ein String zusammengesetzt werden. Und hier muss dann z.B. per IF-Abfrage ausgeschlossen werden dass der unerwünschte/leere Wert in den String reinkommt.
mit der PHP Funktion strlen() kannst du gucken ob Buchstaben drin sind. Wenn keine drin stehen einfach nicht dem Emailtext hinzufügen.
Ich weiß ja nicht wie du das script geschrieben hast. Vielleicht hast du ja auch freie Scripte aus dem netz benutzt die du nicht verändern möchtest. aber irgendwo muss abgefragt werden ob Inhalt im Formularfeld war und dann einfügen oder eben nicht.
Sehr einfach Mails senden kannst du mit: http://sourceforge.net/projects/phpmailer/
dazu musst du eine einfache Abfrage mit PHP machen, ob die Variable belegt ist (also etwas per html-POST übermittelt wurde), oder nicht.
Per html gibst du im Formularaufbau ja den Namen für das Feld ein, das rufst du später im PHP Skript auf.
Die Variable $mailtext könntest du so immer wieder entsprechend weiter „befüllen“. Am Ende stehen dann nur noch die Variablen drin, die auch gesetzt waren.
Ich hoffe ich konnte soweit schonmal helfen. Falls du noch weiter Hilfe brauchst oder das zu knapp war, sag bescheid.
du könntest über eine if-else-Konstruktion prüfen, welche Variablen leer sind und die dann einfach weglassen.
if($name_deiner_variable==’’) {
/* Hier passiert nichts. */
}
else {
/* Hier wird der Inhalt der Variable hinten an eine Variable ($inhalt_deiner_mail) mit deinem Mailinhalt angehängt. Diese Variable kannst du dann beim Abschicken der Mail einsetzen */
$inhalt_deiner_mail.$name_deiner_variable;
}
Bei den Feldern mit den Checkboxen musst du auf den Wert „on“ überprüfen. Der steht für einen gesetzten Haken.
Schreib mir, ob es geklappt hat, bzw. wenn du weitere Fragen hast.
wenn Du von Deinem Mailformular z.B. per POST oder GET eine andere PHP-Seite aufrufst, kannst Du dort untersuchen, welche übergebenen Felder (=Variablen) gesetzt sind oder nicht und dann eine Routine zum Erzeugen und Versenden der E-Mail aufrufen.
(Oder habe ich hier etwas mißverstanden?).