mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 07:03 Benutzername: Passwort: Auto-Login

Thema: Möchte Formular ausgefüllt zurückbekommen vom 03.05.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Möchte Formular ausgefüllt zurückbekommen
Seite: Zurück  1, 2, 3
Autor Nachricht
zecloin
Threadersteller

Dabei seit: 03.05.2007
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst Di 15.05.2007 08:50
Titel

Antworten mit Zitat Zum Seitenanfang

Hey rob,

danke erstmal das du dir die Mühe gemacht hast und schon was geschrieben hast, obwohl du ins Bett wolltest.
Wir haben gestern abend noch eine bzw die Lösung gefunden, häng ich auch mit ran, aber ich würde dich trotzdem bitten, wenn du Zeit und lust hast, noch mal drüber zu gucken, weil ich es ja auch verstehen und lernen will. Also das du vielleicht verbesserungsvorschläge machst mit ner kleinen Erklärung vielleicht ???!!

Jetzt zu dem was Du geschrieben hast.
Da ist nix drin: also wenn ich die html datei mit dem browser öffne ist sie leer, wenn ich mir den quelltext anzeigen lasse kommt auch ne leere Seite

Zitat:
Wenn du mit regulären Ausdrücken arbeitest, dann solltest du nicht die POSIX-RegEx verwenden, sondern die PCRE.
D.h. vergiss die ereg-Funktionen und nimm die preg-Funktionen.
Die arbeiten bei weitem schneller.


da versteh ich gar nicht, was bzw wie du das meinst.

Zitat:

Code:
if ($kurs1<>"")

Du willst prüfen, ob die Variable leer ist?


ja das will ich da prüfen, sind ja checkboxen hinterlegt, les mich aber mal in die empty rein Menno!

jetzt noch der Code der jetzt läuft. Vielleicht gucktst du oder jemand anders ja mal drüber und meckert noch ein bisschen * Ich bin unwürdig * !!!

Code:


<?php
require("include2.php");

//Templatedatei oeffnen und fuellen
$templatevorschau = 'Anmeldungzumtesten.html';

$templatefile = fopen ($templatevorschau, "r");
$html = fread ($templatefile, filesize ($templatevorschau));
fclose ($templatefile);



#haeckchen für Monat
if ($monat1<>"")  $html = ereg_replace("%monat1%","checked",$html);
if ($monat2<>"")  $html = ereg_replace("%monat2%","checked",$html);
if ($monat3<>"")  $html = ereg_replace("%monat3%","checked",$html);

//Daten ins Template einfuegen
$html = ereg_replace("%aname%","$aname",$html);
$html = ereg_replace("%gebdat%","$gebdat",$html);
$html = ereg_replace("%gebort%","$gebort",$html);
$html = ereg_replace("%klinik%","$klinik",$html);

# variablen denen ein "k" vorangestellt ist sind für Korrenspondenzanschrift; die mir "r" für Rechnungsempfänger

$html = ereg_replace("%kname%","$kname",$html);
$html = ereg_replace("%rname%","$rname",$html);
$html = ereg_replace("%kstrasse%","$kstrasse",$html);
$html = ereg_replace("%rstrasse%","$rstrasse",$html);
$html = ereg_replace("%kort%","$kort",$html);
$html = ereg_replace("%rort%","$rort",$html);
$html = ereg_replace("%ktelefon%","$ktelefon",$html);
$html = ereg_replace("%rtelefon%","$rtelefon",$html);
$html = ereg_replace("%kemail%","$kemail",$html);
$html = ereg_replace("%remail%","$remail",$html);
$html = ereg_replace("%beruf%","$beruf",$html);
$html = ereg_replace("%taetigkeit%","$taetigkeit",$html);

if ($antwnein<>"")  $html = ereg_replace("%antwnein%","checked",$html);
if ($antwja<>"")  $html = ereg_replace("%antwja%","checked",$html);

$html = ereg_replace("%erfahrung%","$erfahrung",$html);
$html = ereg_replace("%afov%","$afov",$html);

#kurse

if ($kurs1<>"")  $html = ereg_replace("%kurs1%","checked",$html);
if ($kurs2<>"")  $html = ereg_replace("%kurs2%","checked",$html);
if ($kurs3<>"")  $html = ereg_replace("%kurs3%","checked",$html);
if ($kurs4<>"")  $html = ereg_replace("%kurs4%","checked",$html);
if ($kurs5<>"")  $html = ereg_replace("%kurs5%","checked",$html);

echo "$html";

#Formular als html speichern
$datei = fopen("Kursanmeldung_$aname".".html", "w+");
if ($datei)
{
fputs ($datei,"$html");
fclose ($datei);
}

#Formular als im Anhang E-Mail verschicken

$Dateiname     = "Anmeldungzumtesten.html"; // ggf. inkl. Pfad
$DateinameMail = "Kursanmeldung_$aname.html";

// Aufbau der Nachricht und des Anhangs
/*
$datei.= "\r\n";
$datei.= "begin 666 $DateinameMail\r\n";
$tmp.= convert_uuencode(fread(fopen($Dateiname, "r"), filesize($Dateiname)));
$datei.= $tmp;
$datei.= "end\r\n";
*/

//version ab 3.0


$Headers = "From: wir@test.de\n";
$Empf = "du@test.de" ;
$Betr = "Betr. Anmeldung von $aname" ;

$Trenner = md5(uniqid(time()));

$Message = "From: wir@test.de";
$Message .= "\n";
$Message .= "MIME-Version: 1.0";
$Message .= "\n";
$Message .= "Content-Type: multipart/mixed; boundary=$Trenner";
$Message .= "\n\n";
// $Message .= "This is a multi-part message in MIME format";
// $Message .= "\n";
$Message .= "--$Trenner";
$Message .= "\n";
$Message .= "Content-Type: text/plain";
$Message .= "\n";
$Message .= "Content-Transfer-Encoding: 8bit";
$Message .= "\n\n";
$Message .= "Meine erste Mail mit Anhang!\n\n";
$Message .= "Zeile2 \n";
$Message .= "Zeile3 \n";
$Message .= "\n";
$Message .= "--$Trenner";
$Message .= "\n";
$Message .= "Content-Type: text/html; name=$DateinameMail";
$Message .= "\n";
$Message .= "Content-Transfer-Encoding: 8bit";
$Message .= "\n";
$Message .= "Content-Disposition: attachment; filename=$DateinameMail";
$Message .= "\n\n";
$Message .= "$html";   //Inhalt des Formulars integrieren
$Message .= "\n";
$Message .= "--$Trenner--";

//echo "<BR><BR>$Message<BR><BR>";


//$Dateiinhalt = fread(fopen($DateinameMail, "r"), filesize($DateinameMail));
//$Message .= chunk_split(base64_encode($Dateiinhalt));


// mail("ich@test.de", $templatevorschau, "$templatevorschau", $Header);


//$mail_sent = @mail( $Empf, $Betr, $Message, $Headers);
$mail_sent = @mail( $Empf, $Betr, "", $Message);

echo $mail_sent ? "Mail sent" : "Mail failed";

?>



Hab die ganzen auskommentierten sachen einfach mal drin gelassen, wer weiß wozu es gut ist.!? Diesmal auch die komplettversion dieser Datei. Damit ihr evtl besser durchseht.

Also schonmal ganz dickes Danke an alle die mir helfen und geholfen haben!!!!!!!!!!!!!!!!!!!!! * Applaus, Applaus * * Applaus, Applaus *


Zuletzt bearbeitet von zecloin am Di 15.05.2007 13:53, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Di 15.05.2007 19:06
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
da versteh ich gar nicht, was bzw wie du das meinst.

Es gibt reguläre Audrücke nach POSIX und es gibt Perl kompatible reguläre Ausdrücke.
Die POSIX-Funktionen heissen ereg_irgendwas() und die PCRE-Funktionen heissen preg_irgendwas().
Vergiss die POSIX-Funktionen und setzte die PCRE-Funktionen ein.
In deinem Fall:
Nutze also nicht ereg_replace(), sondern preg_replace().


Dann sieht dein Script eigentlich ganz OK aus.
Außer der Tatsache, daß du scheinbar nicht verstanden hast, was Email-Header wirklich sind.
Hier im Header-FAQ kannst du mehr dazu erfahren.

Das hier ist eine Headerzeile:
Code:
$Headers = "From: wir@test.de\n";

Die einzelnen Header müssen aber durch CRLF getrennt werden.
Das müßte hier in diesem oder diesem RFC zu finden sein.
Richtig wäre also:
Code:
$Headers = "From: wir@test.de\r\n";

und das gilt für alle Header.

Code:
$Message .= "MIME-Version: 1.0";

Warum speicherst du das in $Message?
Das ist eine Headerzeile.
Gleiches gilt für Content-Type und Content-Transfer-Encoding.
Zumindest das erste Content-Type/Content-Transfer-Encoding gehört in die Headerzeilen.
Deinem Boundary (Trenner) folgen dann im Mailbody diese Angaben eventuell erneut.

Das hier ist auch falsch:
Code:
$mail_sent = @mail( $Empf, $Betr, "", $Message);

Die Mailfunktion fordert mindestens drei Parameter, kann aber auch fünf haben. Vier solltest du davon nutzen. (Mit dem fünften kann man zusätzliche Parameter an den MTA übergeben. Das brauchst du aber nicht.)
So sollte es aussehen:
Code:
mail( $empfaenger, $betreff, $nachricht, $zusaetzliche_header );

Aber so sieht es bei dir aus:
Code:
mail( $empfaenger, $betreff, "", $zusaetzliche_header );

Da wohl der Nachrichtentext sein sollte, übergibst du einen leeren String.
Das ist vermutlich der Grund, warum bei dir eine leere Mail ankommt.
Die Mail hat dann sicherlich diese Dateigröße, weil sie nicht ganz leer ist. Da sind Headerzeilen drin. Die zeigt dir dein Mailclient aber nicht an.
(Selbst wenn du keine zusätzlichen Headerzeilen übergibst, sind welche drin. Der Empfänger steht im Header und der MTA/SMTP-Server fügt auch noch welche ein.)
Wenn das mit dem Mailversenden bei dir jetzt trotzdem klappt, dann liegt das daran, daß du Headerzeilen und Nachrichtentext noch immer irgendwie zusammengemurkst hast.

Dann weiter:
Code:
$mail_sent = @mail( $Empf, $Betr, "", $Message);

Mit dem vorangestelltem @-Zeichen unterdrückst du eventuell auftretende Fehlermeldungen.
Die solltest du eigentlich besser abfangen als zu unterdrücken.
Ist aber hier nicht so wichtig...

Du solltest dir im Handbuch mal die Beschreibung der Mailfunktion genauer anschauen.
Scheinbar liegt bei dir auch ein Mißverständnis vor, was dir die Funktion zurückgibt:
Code:
echo $mail_sent ? "Mail sent" : "Mail failed";

In $mail_sent wird niemals enthalten sein, ob deine Mail verschickt wurde oder nicht.
Die Mailfunktion gibt zwar einen Rückgabewert, dieser sagt dir aber nicht, ob die Mail verschickt werden konnte, sondern nur, ob PHP die Mail an den MTA übergeben konnte.


Zuletzt bearbeitet von rob am Di 15.05.2007 19:09, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
zecloin
Threadersteller

Dabei seit: 03.05.2007
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst Do 24.05.2007 11:57
Titel

Antworten mit Zitat Zum Seitenanfang

Halli Hallo an alle scripter,

Also ich bin ja nun soweit das es funzt, also user füllt Formular aus, drückt absenden,bekommt nochmal das ausgefüllte Formular mit der Option zum Drucken und das Ausgefüllte Formular wird mir im Anhang einer E-Mail als .html geschickt.

Jetzt hab ich mir Überlegt, wäre ja ganz schön das Ganze in eine DB auslesen zu lassen, damit man nen Überblick bekommt wieviel leute sich schon angemeldet haben.

Geht doch oder? hab sowas vor ner ganzen Weile mal gemacht, mit ganz wenigen Daten und eigentlich auch ganz anderer Form, kann mir bitte nochmal jemand nen kleinen Schupps in die Richtige Richtung geben wie das gemacht wurde? Büdde!
  View user's profile Private Nachricht senden
 
Ähnliche Themen PHP Formular - Fehlermeldung wenn nicht alles ausgefüllt ist
PHP Abfrage ob alle Felder ausgefüllt wurden
kontakt php meldet immer "nicht alles ausgefüllt"
Möchte mir ein paar Bücher kaufen
ch möchte eine kleine Homepage basteln
Kunde möchte Texte in Homepage bearbeiten
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2, 3
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.