Eurokicker
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 16.08.2001, 21:10   #1
TP-Senior
 
Benutzerbild von yemaya
 
Registriert seit: Apr 2001
Ort: Nordhessen
yemaya ist auf einem guten Weg

formMail mittels php


Hallo,
ich beschäftige mich erst seit heute mit php und natürlich gibt es schon Probleme.
Ich habe also ein Formular erstellt, zu sehen unter
http://www.apothekesuttrop.de/vorbestellung.html

Dem Formular ist als Aktion die Datei mailakti.php zugewiesen mit folgendem Inhalt:
<? $mailtext = "Patient hat folgendes eingegeben:\n\n";
$mailtext = "Name: $Name\n";
$mailtext = "Wunschtermin:\n\n";
$mailtext = "Tag: $Tag\n";
$mailtext = "Monat: $Monat\n";
$mailtext = "Jahr: $Jahr\n";
$mailtext = "Medikament1: $Medikament1\n";
$mailtext = "Medikament2: $Medikament2\n";
$mailtext = "Medikament3: $Medikament3\n";
$mailtext = "Medikament4: $Medikament4\n";
$mailtext = "Email des Patienten: $Email\n";
mail("latinotaverne@t-online.de", "Vorbestellung", $mailtext, "");
?>

Meine Absicht war, in der eMail den Inhalt aller Formularfelder zugeschickt zu bekommen, aber es funzt nicht. Ich bekomme eine eMail, wo nur die letzte Zeile steht, also: "Email des Patienten: soundso@undso". Der ganze Rest fehlt. Was mache ich falsch?
yemaya ist offline   Mit Zitat antworten


Alt 16.08.2001, 21:22   #2
TP-Greis
 
Benutzerbild von Lars
 
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
Lars bringt sich richtig ein
Das ist auch kein Wunder.

Du überschreibst die Variable $mailtext jedesmal.
Damit es klappt, musst Du den Text der Formularfelder anhängen.
Hierzu ist anstatt des Gleichheitszeichens ein ".=" zu verwenden.
Also so:

PHP-Code:
<? $mailtext "Patient hat folgendes eingegeben:\n\n"
$mailtext .="Name: $Name\n"
$mailtext .="Wunschtermin:\n\n"
$mailtext .="Tag: $Tag\n"
$mailtext .="Monat: $Monat\n"
$mailtext .="Jahr: $Jahr\n"
$mailtext .="Medikament1: $Medikament1\n"
$mailtext .="Medikament2: $Medikament2\n"
$mailtext .="Medikament3: $Medikament3\n"
$mailtext .="Medikament4: $Medikament4\n"
$mailtext .="Email des Patienten: $Email\n"
mail("latinotaverne@t-online.de""Vorbestellung"$mailtext); 
?>

Du musst natürlich nicht alles in eine Variable schreiben.
Die Funktion mail() verträgt auch mehrere davon.
Wahlweise könnt es auch so aussehen:

PHP-Code:
mail("latinotaverne@t-online.de""Vorbestellung"$mailtext"\n",  $Name"\n", ...); 
__________________
Give up yourself into the moment — The time is now.

Geändert von Lars (16.08.2001 um 21:41 Uhr).
Lars ist offline   Mit Zitat antworten
Alt 16.08.2001, 21:31   #3
TP-Senior
 
Benutzerbild von yemaya
 
Registriert seit: Apr 2001
Ort: Nordhessen
yemaya ist auf einem guten Weg
Schmobi, Du bist mein Held!
Es fuuuunnnzt!
yemaya ist offline   Mit Zitat antworten
Alt 16.08.2001, 21:35   #4
TP-Greis
 
Benutzerbild von Lars
 
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
Lars bringt sich richtig ein
*freu*
__________________
Give up yourself into the moment — The time is now.
Lars ist offline   Mit Zitat antworten
Alt 16.08.2001, 21:42   #5
TP-Senior
 
Benutzerbild von yemaya
 
Registriert seit: Apr 2001
Ort: Nordhessen
yemaya ist auf einem guten Weg
Talking

Achso, danke.

Wegen "" zuviel:
Im schlauen Buch :"Jetzt lerne ich Dynamic Web Publishing" wird garaten bei Funktion mail() vier Parameter anzugeben. Angeblich hat sich in php Version 3.0.12 ein Bug eingeschlichen, der dafür sorgt, dass eMails unter Windows nicht verschickt werden, wenn kein vierter Parameter angegeben wird. Deswegen eine leere Zeichenkette.
Ich habe zwar keine Ahnung, ob das stimmt aber sicher ist sicher.
yemaya ist offline   Mit Zitat antworten
Alt 16.08.2001, 21:58   #6
TP-Senior
 
Benutzerbild von yemaya
 
Registriert seit: Apr 2001
Ort: Nordhessen
yemaya ist auf einem guten Weg
Noch eine Frage (ich weiß, ich nerve):

Jetzt möchte ich gerne eine einfache Vollständigkeitsprüfung durchführen. Dazu habe ich dieses gebastelt:


<?
$komplett = true;
if ($Versand=="Abschicken")
{
if ($Name==""){ $komplett = false; }
if ($Tag=="") { $komplett = false; }
if ($Monat=="") { $komplett = false; }
if ($Jahr=="") { $komplett = false; }
if ($Medikament1=="") { $komplett = false; }
if ($Email=="") { $komplett = false; }
if ($komplett) {
header("Location: danke.php");
exit;
}
}
?>

Kann sowas überhaupt funzen?
Und wenn ja, wo füge ich das ein? In die gleiche Datei wie mail() ? Oder vielleicht in die html-Datei mit Formular? Wo genau?
Und wenn ja, muß ich da etwas beachten, muß ich die beiden Skripte irgendwie verbinden? Welcher kommt zuerst?
yemaya ist offline   Mit Zitat antworten
Alt 16.08.2001, 22:16   #7
TP-Greis
 
Benutzerbild von Lars
 
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
Lars bringt sich richtig ein
a) Der von Dir bzw. dem Buch angesprochene Bug bezieht sich vermutlich darauf, dass wenn erweiterte Header mitgesendet werden, also etwa "Reply-To:" oder "Bcc:" diese mit "\r\n" vom Rest getrennt werden müssen. Hierbei ist im übrigen zu beachten, dass diese Header case-sensitive sind!

b) Ich würde hier Javascript einsetzen, da es bei einem relativ kleinen Formular wie Deinem bequemer zu handeln ist (nicht die ganzen Eingaben auf der Folgeseite wieder ausgeben etc.):

PHP-Code:
function checkForm(){ // (c) schmobi 2001 
   
var document.forms[0]
   var 
error " "

      
if (f.Name.value=="")
         
error += "- Name\n "
      
if (f.Tag.value=="")
         
error += "- Tag\n "
      
if (f.Monat.value=="")
         
error += "- Monat\n "
      
if (f.Jahr.value=="")
         
error += "- Jahr "
      
if (f.Medikament1.value=="")
         
error += "- Medikament1\n"
      
if (f.Medikament2.value=="")
         
error += "- Medikament2\n"
      
if (f.Medikament3.value=="")
         
error += "- Medikament3\n"
      
if (f.Medikament4.value=="")
         
error += "- Medikament4\n"
      
if (f.Email.value=="")      
         
error += "- eMail"


      
if (error != " "){
         var 
warning "Folgende Felder müssen ausgefüllt werden:\n\n"
         
warning += error
         alert
(warning)

         return 
false
         
}

return 
true

Das ganze einfach in den Kopf der Formularseite packen und den Form-Tag um "onSubmit(return checkForm)" erweitern.

Wenn Du es per PHP lösen willst, musst im Mail-Script erst alle Variablen auf Inhalt prüfen (if ($Name == "")), die eventuell Leeren ausgeben, um Vervollständigung bitten und daraufhin den Vorgang wiederholen.
Wenn dann alles ausgefüllt ist, kannst Du endlich schleifengesteuert mail() auslösen.

Wie man sieht, ist das für Dich und den Nutzer sehr fummelig. Das Javascript gibt schnell ein Hinweisfenster aus und gut ist's.
__________________
Give up yourself into the moment — The time is now.

Geändert von Lars (17.08.2001 um 10:12 Uhr).
Lars ist offline   Mit Zitat antworten
Alt 16.08.2001, 22:28   #8
TP-Senior
 
Benutzerbild von yemaya
 
Registriert seit: Apr 2001
Ort: Nordhessen
yemaya ist auf einem guten Weg
fantastisch, werde ich sofort ausprobieren!
Danke! Ich versuche es mit Java Skript, das Ganze sieht so tatsächlich einfacher aus.

Geändert von yemaya (16.08.2001 um 22:32 Uhr).
yemaya ist offline   Mit Zitat antworten
Alt 16.08.2001, 22:44   #9
TP-Greis
 
Benutzerbild von Lars
 
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
Lars bringt sich richtig ein
Um dem ganzen den letzten Schliff zu geben, können wir auch noch checken, ob es sich z.B. um ein gültiges Datum oder eine gültige eMail-Adresse handelt, um eventuellen Scherzbolden weitere Hürden in den Weg zu legen.
Meld' Dich, wenn da Bedarf besteht.

BTW: Warum eigentlich drei Eingabefelder für das Datum? Würde es nicht auch ein zehnstelliges Feld (TT.MM.JJJJ) tun? Aber eigentlich ist das auch egal...
__________________
Give up yourself into the moment — The time is now.
Lars ist offline   Mit Zitat antworten
Alt 17.08.2001, 01:33   #10
TP-Senior
 
Benutzerbild von yemaya
 
Registriert seit: Apr 2001
Ort: Nordhessen
yemaya ist auf einem guten Weg
schm bi ,
es ist vollbracht.
Dank Deiner Hilfe hat alles gefunzt . Ich habe noch eine Ausgabe der Formulardaten auf der Danke-Seite dazugebaut. Sogar das funzt ("stolz").

Zitat:
Um dem ganzen den letzten Schliff zu geben, können wir auch noch checken, ob es sich z.B. um ein gültiges Datum oder eine gültige eMail-Adresse handelt
Au ja, super Idee. Ich werde mich dazu melden, aber erst in einer Woche. Ich hoffe, Du bist dann noch da
yemaya ist offline   Mit Zitat antworten
Alt 17.08.2001, 10:07   #11
TP-Greis
 
Benutzerbild von Lars
 
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
Lars bringt sich richtig ein
Ich bin an 24 Stunden 365 Tage im Jahr hier.
Sonst kannst Du ja auch kurz eine Nachricht schicken.

P.S. Da fehlt noch ein \n beim Fehlertext für Medikament1. Sonst stehen Medikament1 und eMail in einer Zeile. War aber mein Fehler, ich habe es gerade in meinem Posting (s. oben) geändert.
Immer diese Flüchtigkeitsfehler...
__________________
Give up yourself into the moment — The time is now.

Geändert von Lars (17.08.2001 um 10:13 Uhr).
Lars ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
formMail mittels php formMail mittels php
« Gute Links für Anfänger gesucht | PHP Einstieg »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
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
mittels php ein wasserzeichen oder gd-lib php!? bensky Traum-Dynamik 0 03.03.2004 15:42
-Parameter mittels PHP definieren webmichl Traum-Dynamik 1 18.11.2003 13:57
Mittels Php Komplette Webseite Kopieren? Christoff Traum-Dynamik 4 02.09.2003 15:44
text mittels PHP einbinden hnes Server & Provider 4 04.02.2003 12:16
Sound stoppen mittels php Michi Flash 3 12.02.2002 16:34


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:48 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67