<?xml version="1.0" encoding="utf-8"?>
		<feed xmlns="http://www.w3.org/2005/Atom">
		  <title type="text">Webmatze's Webmaster Forum - Formularversendung per php-funktion mail()</title>
		  <updated>2010-09-10T13:47:30+02:00</updated>
		  <id>http://forum.webmatze.de/</id>
		  <link rel="alternate" type="text/html" hreflang="en" href="http://forum.webmatze.de/discussion/?DiscussionID=897"/>
		  <link rel="self" type="application/atom+xml" href="http://forum.webmatze.de/discussion/?DiscussionID=897&amp;Feed=Atom"/>
		  <generator uri="http://getvanilla.com/" version="1.1.8">
			 Lussumo Vanilla
		  </generator>
		  <entry>
		<title>Formularversendung per php-funktion mail()</title>
		<link rel="alternate" href="http://forum.webmatze.de/discussion/897/?Focus=6347#Comment_6347" type="application/xhtml+xml" hreflang="en"/>
		<id>http://forum.webmatze.de/discussion/897/?Focus=6347#Comment_6347</id>
		<published>2008-04-10T21:26:07+02:00</published>
		<updated>2008-04-11T10:45:34+02:00</updated>
		<author>
			<name>eru</name>
			<uri>http://forum.webmatze.de/account/440/</uri>
		</author>
		<summary type="text" xml:lang="en">
			hallo liebe leute,
habe vor 8 jahren mal angefangen, mit php zu arbeiten - leider seitdem nichts mehr gemacht und muss deshalb quasi bei 0 anfangen.

für die (non-profit-)kunstveranstaltung ...
		</summary>
		<content type="html">
			<![CDATA[hallo liebe leute,<br />habe vor 8 jahren mal angefangen, mit php zu arbeiten - leider seitdem nichts mehr gemacht und muss deshalb quasi bei 0 anfangen.<br /><br />für die (non-profit-)kunstveranstaltung transit station gibt es auf der website ein html-anmeldeformular für künstler.<br /><br />nun möchte ich dieses html-formular mit der mail-funktion von php versenden, da es mit reinem html zu oft nicht klappt - und habe massive probleme... (eigentlich mehrere).<br />das formular besteht aus 10 eingabefeldern, 5 textareas, 8 checkboxen (einer gruppe - mein zweites problem) und 2 radio-buttons (einer gruppe).<br />das dritte problem ist, dass ich gerne eine möglichkeit für datei-upload bei 3 der 5 textareas anbieten würde......<br />aber mir wäre schon sehr geholfen, wenn ich die grundfunktionalität hinbekommen würde.<br /><br />php kann max. 5 parameter an die funktion mail() übergeben, also bin ich gezwungen, einiges (in einer variablen?) zusammenzufassen und durch zeilenumbrüche leichter zugänglich bzw. lesbar zu machen...<br /><br />...und leider bekomme ich's einfach nicht gebacken...<br />hier das php-script in verkürzter form - so funktioniert es, nur brauche ich eben alle formularbereiche.<br /><br />&lt;?php<br />#-------------------------------------------<br /># Globale Daten:<br />$mailto = &quot;contact@transitstation.de&quot;;<br />$form_file = &quot;antragsformular.html&quot;;<br />$thanks_file = &quot;danke.html&quot;;<br />$standard_legend = &quot;Hinweis&quot;;<br />$error_legend = &quot;Fehler&quot;;<br />#-------------------------------------------<br /># Funktion was ist zu tun<br />if(isset($_POST['feedback']))<br />check_form_data();<br />else<br />show_form_data(false);<br />#-------------------------------------------<br /># Funktion show_form_data():<br />function show_form_data($with_error) {<br />global $form_file, $standard_legend, $error_legend;<br />$page = file_get_contents($form_file);<br />$page = preg_replace(&quot;/\[\%self\%\]/&quot;,<br />$_SERVER['SCRIPT_NAME'], $page);<br />if($with_error == true)<br />$page = preg_replace(&quot;/\[\%legend\%\]/&quot;,<br />$error_legend, $page);<br />else<br />$page = preg_replace(&quot;/\[\%legend\%\]/&quot;,<br />$standard_legend, $page);<br />echo $page;<br />exit();<br />}<br />#-------------------------------------------<br /># Funktion check_form_data():<br /># Formulareingaben prüfen<br />function check_form_data() {<br />//echo &quot;&lt;pre&gt;&quot;, var_dump($_POST), &quot;&lt;/pre&gt;&quot;;<br />if(empty($_POST['vorname']) or empty($_POST['nachname']) or empty($_POST['adresse']) or empty($_POST['medium']) or empty($_POST['contractterms']))<br />show_form_data(true);<br />else<br />mail_and_thanks();<br />}<br />#-------------------------------------------<br /># Funktion mail_and_thanks():<br />function mail_and_thanks() {<br />global $mailto, $thanks_file;<br />$headers = &quot;From: {$_POST['vorname']} {$_POST['nachname']} &quot;;<br />$headers .= &quot;&lt;{$_POST['email']}&gt;\r\n&quot;;<br />$headers .= &quot;Content-Type: text/plain; charset=ISO-8859-1\r\n&quot;;<br />$headers .= &quot;Content-Transfer-Encoding: 8bit&quot;;<br />mail($mailto, $_POST['subject'], $_POST['adresse'], $headers);<br />$page = file_get_contents($thanks_file);<br />echo $page;<br />exit();<br />}<br />?&gt;<br /><br />ich wäre sehr froh über hilfe bei meinem problem<br />danke<br />eru]]>
		</content>
	</entry>
	<entry>
		<title>Formularversendung per php-funktion mail()</title>
		<link rel="alternate" href="http://forum.webmatze.de/discussion/897/?Focus=6356#Comment_6356" type="application/xhtml+xml" hreflang="en"/>
		<id>http://forum.webmatze.de/discussion/897/?Focus=6356#Comment_6356</id>
		<published>2008-04-17T23:51:24+02:00</published>
		<updated>2008-04-17T23:54:54+02:00</updated>
		<author>
			<name>Cimme</name>
			<uri>http://forum.webmatze.de/account/2/</uri>
		</author>
		<summary type="text" xml:lang="en">
			Hallo eru, 

ich hab den Code nur kurz überflogen und kann nur sagen: Keine vom User eingegeben Daten ungeprüft verarbeiten. 

Wenn der Eingebende ein einfaches Anführungszeichen zusammen mit ...
		</summary>
		<content type="html">
			<![CDATA[Hallo eru, <br /><br />ich hab den Code nur kurz überflogen und kann nur sagen: Keine vom User eingegeben Daten ungeprüft verarbeiten. <br /><br />Wenn der Eingebende ein einfaches Anführungszeichen zusammen mit einer schließenden Klammer und einem Semikolon eingibt ist die Mail-Funktion hier abgebrochen. <br /><br />Zudem rufst du eine erst spätere Funktion weiter oben auf. <br /><br />Grundsätzlich ist es sinnvoll, wie folgt bei der Programmierung vorzugehen (dies ist meine Empfehlung und soll hier auch nicht als Standart gelten):<br /><br /><br />- Liste was der Programmteil können soll mit Soll- und Kannfunktionen<br />- Nun wird der Programmablauf nach logischen Gesichtspunkten auf dem Papier entworfen. <br />- Die benötigten Funktionen werden zurechtgelegt beziehungsweise nachgeschlagen. <br />- Erst jetzt wird der Code anhand (strikt) des vorher auf Papier geschriebenen Programmablaufs erstellt. <br />- Jede Funktion wird auf Logik und syntaktische Fehler geprüft. (da sind wir jetzt) ;)<br />- Jetzt lassen wir einige (bekannte) Tester drauf los und finden so logische und funktionale Fehler raus. <br /><br /><br />So ist es relativ schnell ein Programm zu programmieren. <br /><br />Um auf dein Problem zurückzukommen:<br /><br />Warum verwendest du exit? Die Ganze Sache ist doch in der letzten Funktion schon abgehandelt und somit fertig. <br /><br />Die Funktion form_check_data hat bei der if-Schleife einen Fehler (die else wird nicht geöffnet und die if nicht geschlossen. <br /><br />Beim genauen Durchschauen viel mir zudem auf, dass alles etwas durcheinander ist. <br /><br />Mein Tipp wäre hier einfach mal ein stink normales Gästebuch (ohne Datenbank) vom Quelltext her anzuschauen. <br /><br />Vielleicht kommen von Webmatze oder anderen ein paar BlogEinträge zu Formulardatenverarbeitung. <br /><br />Grüße<br />Cimme<br /><br />PS: vielleicht schreib ich da was übers Wochenende. :D]]>
		</content>
	</entry>
	
		</feed>