php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.06.2008, 19:36  
Neuer Benutzer
 
Registriert seit: 01.06.2008
Beiträge: 8
thomas108 befindet sich auf einem aufstrebenden Ast
Standard E-Mail Formular: Variablen in $message einfügen?

Hallo allerseits

Ich versuche gerade ein E-Mail Formular mit PHP zu bauen.
Als Grundlage benutze ich dies "Bulletproof Contact Form" von digital-web.com.
(Ein kleines aber sehr feines Einsteiger Tutorial)

Im Originalskript gibt es nur die Formularfelder "name, email, topic und comment".

Ich möchte aber mehr Felder und auch checkboxes haben und habe das Formular dank guter html und css Kenntnisse schnell erweitert:

Ich habe nun laut meinem Tutorial) meine Formular Daten an Variablen übergeben: (Auszug)

$name = $_POST['name'];
$firma = $_POST['firma'];
$strasse = $_POST['strasse'];
$ort = $_POST['ort'];
$telefon = $_POST['telefon'];
$email = $_POST['email'];
$firmenbeschreibung = $_POST['firmenbeschreibung'];
$topic = $_POST['topic'];
$comment = $_POST['comment'];


Im Original geht es dann so weiter:

$to = 'info@irgendwas.com';
$subject = "New message: $topic";
$message = "$name said: $comment";
$headers = "From: $email";

mail($to, $subject, $message, $headers);

Hier ist nun mein "absolute beginners" Problem: In der Email taucht nur die "message" und das "topic" auf.

Wie schreibe ich da meine Variablen rein? Kann Ich "$message" mehrfach nehmen,

oder in "$message" alle Variablen mit Komma oder so auflisten?

Wie schreibe ich das?

Hoffe ich habe mich verständlich ausgedrückt.
Vielen Dank im Voraus für Eure Mühe

Thomas
thomas108 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.06.2008, 22:33  
Erfahrener Benutzer
 
Registriert seit: 01.06.2008
Beiträge: 179
PHP-Kenntnisse:
Fortgeschritten
Daniel befindet sich auf einem aufstrebenden Ast
Standard

Du kannst den Inhalt mehrerer Variablen mit einem Punkt aneinandersetzen.

Beispiel:

PHP-Code:
$message $name ' von der Firma '.$firma.' wohnhaft in '.$ort.' hat geschrieben:'.$comment
Also einfach Variablen und Strings mittels eines Punktes verketten.

Geändert von Daniel (02.06.2008 um 01:35 Uhr).
Daniel ist offline  
Alt 01.06.2008, 23:29  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Für solche Umfangreicheren Stringverkettungen bietet sich die übersichtlichere Methode über sprintf an:
PHP-Code:
$message sprintf ('%s von der Firma %s wohnhaft in %s hat geschrieben: %s' ,
                    
$name   ,
                    
$firma  ,
                    
$ort    ,
                    
$comment ); 
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 01.06.2008, 23:34  
Erfahrener Benutzer
 
Registriert seit: 01.06.2008
Beiträge: 179
PHP-Kenntnisse:
Fortgeschritten
Daniel befindet sich auf einem aufstrebenden Ast
Standard

Jupp, so ist es natürlich schöner.

Wollte nur die vermeintlich einfachere Methode nennen
Daniel ist offline  
Alt 02.06.2008, 10:01  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Ich möchte dir dringend empfehlen, die Benutzereingaben, v.a. $_POST['email'], vorher genau zu prüfen. Sonst könnte mit deinem Formular allerlei auf der ganzen Welt rumgeschickt werden.
__________________
Gruss
L
lazydog ist offline  
Alt 02.06.2008, 11:11  
Neuer Benutzer
 
Registriert seit: 01.06.2008
Beiträge: 8
thomas108 befindet sich auf einem aufstrebenden Ast
Standard

Hallo,
Vielen Dank für Eure schnelle und gute Hilfe.
Das Formular funktioniert nun so weit.

Das mit der Sicherheit werde ich gleich diese Woche in Angriff nehmen!

Nun würde ich gerne noch wissen, ob und wie Ich dem Output in der Email einen Textumbruch geben kann?
Kann Ich im sprintf vielleicht html tags benutzen <p></p> bzw. <br /> oder wie stelle ich das an?

Hier mein aktueller Code (Nur ein kleiner Auszug)

$message = sprintf ( 'Name %s Firma %s Strasse: %s Ort %s Telefon: %s Email %s firmenbeschreibung %s typische_kunden %s ,
$name ,
$firma ,
$strasse ,
$ort ,
$telefon ,
$email ,
$firmenbeschreibung) ;

Das ganze kommt dann in der E-Mail in einer langen Zeile so an:

Name Frank Müller Firma Müllermist Strasse Bergstr 108 Ort 12345 Irgendwo Telefon 012345 234565 Email xyz@web.de firmenbeschreibung . . .

Ich hätte das nun gerne mindestens so:

Name Frank Müller
Firma Müllermist
Strasse Bergstr 108
Ort 12345 Irgendwo
Telefon 012345 234565
Email xyz@web.de
firmenbeschreibung . . .

Oder gerne auch mit einer Leerzeile dazwischen:

Name Frank Müller

Firma Müllermist

Strasse Bergstr 108

. . .

Danke schon mal, Thomas
thomas108 ist offline  
Alt 02.06.2008, 11:14  
Erfahrener Benutzer
 
Registriert seit: 01.06.2008
Beiträge: 179
PHP-Kenntnisse:
Fortgeschritten
Daniel befindet sich auf einem aufstrebenden Ast
Standard

Das kommt darauf an, ob du eine Text-Mail oder eine HTML-Mail verschickst.

In der HTML Mail kannst du natürlich auch HTML benutzen, in der Textmail kannst du ein Zeilenumbruch mit "\n" realisieren.
Daniel ist offline  
Alt 02.06.2008, 11:23  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:

$message 
sprintf("Name:\t%s\nFirma:\t%s\nStrasse:\t%s Ort:\t%s \nTelefon:\t%s\nEmail:\t%s\nFirmenbeschreibung:\t%s\n" ,
    
$name   ,$firma  ,$strasse $ort ,
    
$telefon $email $firmenbeschreibung) ; 
__________________
Gruss
L
lazydog ist offline  
Alt 02.06.2008, 11:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Innerhalb der Stringbegrenzer funktionieren auch Zeilenumbrüche im Quellcode:
PHP-Code:
$message sprintf(
'Name:     %s
Firma:     %s

Strasse: %s 
Ort:     %s 

Telefon: %s
Email:     %s

Firmenbeschreibung: %s' 
,
    
$name   ,
    
$firma  ,
    
$strasse 
    
$ort ,
    
$telefon 
    
$email 
    
$firmenbeschreibung); 
So erhältst Du eine Art Dokumentenvorlage, die optisch besser zu bewerten ist.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 02.06.2008, 12:33  
Neuer Benutzer
 
Registriert seit: 01.06.2008
Beiträge: 8
thomas108 befindet sich auf einem aufstrebenden Ast
Standard

Habe die letzte Version genommen, funktioniert einwandfrei.
das ist ja echt super hier im Forum, bekomme langsam Lust auf PHP. Wer hätte das gedacht?

Die Umlaute aus den Formularfeldern kommen noch nicht korrekt in der E-Mail an, kann ich irgendwo die Kodierung angeben? (UTF-?

Dann würde ich als Steigerung gerne noch die Namen der "Legend tags" aus meinen "fieldset-Feldern" im Formular haben, wenn das geht.
Im Moment sieht der Code so aus:

'Name: %s
Firma: %s
Strasse: %s
Ort: %s
Telefon: %s
E-mail: %s

Firmenbeschreibung: %s
Typische Kunden: %s
Neue Zielgruppen: %s

Und Ich hätte das dann gerne in der Email z.B. so (mit den legend -tags):

PERSÖNLICHES
Name:
Firma:
Strasse:
Ort: %s
Telefon: %s
E-mail: %s

BUSINESS
Firmenbeschreibung: %s
Typische Kunden: %s
Neue Zielgruppen: %s


Geht das?
Thomas
thomas108 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Keine Ausgabe von Variablen bei Formular luckynuts PHP Tipps 2008 11 15.07.2008 19:34
Variablen aus Formular über HTTPRequest übertragen -jan- JavaScript, Ajax und mehr 6 27.05.2008 14:08
Formular - Normaler Text im Mail? Toby PHP Tipps 2008 6 31.10.2007 13:32
Variablen von Link in Formular übertragen PHP Tipps 2005-2 8 16.08.2005 14:44
Variablen in neues Formular über Button oder Link übergeben PHP Tipps 2005-2 1 15.07.2005 23:10
Mail Funktion mit Variablen aus einem Formular PHP Tipps 2005 2 17.03.2005 14:21
[Erledigt] Wer kann mir bei Formular helfen? Variablen kommen von Flash PHP-Fortgeschrittene 12 01.03.2005 15:48
[Erledigt] in textarea variablen speichern und per mail versenden PHP Tipps 2004-2 3 10.12.2004 12:10
Formular mit Attachment(doc, pdf, zip...)als Mail versenden PHP-Fortgeschrittene 3 04.11.2004 14:58
Variablen aus den Formular sind nicht mehr verfügbar PHP Tipps 2004 6 30.10.2004 13:31
Problem mit Formular + Mail To+ PHP-Seiten weiterleitung HTML, Usability und Barrierefreiheit 3 27.08.2004 11:06
[Erledigt] Formular via Mail über Php senden? PHP Tipps 2004 3 21.07.2004 14:09
Formular mit mail() verschicken ?! bitte um Hilfe PHP Tipps 2004 48 11.07.2004 19:46
PHP Mail Formular PHP Tipps 2004 1 09.07.2004 11:23
Übergabe von Variablen bei einem Formular in eine *.php HTML, Usability und Barrierefreiheit 6 01.07.2004 12:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php variablen verketten formular, übergabe zeilenschaltung in php variable, wie formuliere ich von bei php mail php code, $message, message formular, sprintf zeilenumbruch php, mailform variable übernehmen, $message .=, kontaktformular php bulletproof 2012, php message variable, email mit variablen mit php versenden, php text variable für email form, variable in email mit php, php mailformular tutorial, mail() from variablen einfügen, variable in formularfeld einfügen html, php mailer formularvariablen, variablen in e mail, php variable an mail, email form variable

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:04 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum