Aktives Mitglied
Ps-ler ;-)
<?php
002./**
003. *
004. * Dieser nun folgende PHP-Teil kommt in die Datei form.php ganz oben oder an erster Stelle.
005. * Er muss lediglich im ganannten Bereich ".. ---- ab hier anpassen ---..." angepasst werden
006. *
007. * Eine Danke- oder Mailbestätigungsseite muss noch erstellt werden. Allerdings ist in der
008. * Einstellungmöglichkeit schon eine URL vorbereitet und muss lediglich per path und Dateiname
009. * angepasst werden.
010. *
011. */
012.
013.error_reporting(E_ALL);
014.
015./* --------------------------------------------- ab hier anpassen -------------------- */
016.// Errormitteilungen (entsprechende Texte anpassen)
017.define('ERROR_1', 'Ihre E-Mailadresse ist nicht vorhanden.');
018.define('ERROR_2', 'Ihre E-Mailadresse ist ungültig.');
019.define('ERROR_3', 'Geben Sie bitte einen Text ein.');
020.define('ERROR_4', 'Sie haben keinen Familiennamen angegeben.');
021.define('ERROR_5', 'Sie haben keinen Vornamen angegeben.');
022.define('ERROR_6', 'Bitte füllen Sie das Formular aus.');
023.define('ERROR_7', 'Die ausgewählte Datei ist zu groß.');
024.define('ERROR_8', 'Die ausgewählte Datei hat nicht den erlaubten Dateitype');
025.// Aktionpath - diese Einstellung nur verwnden, wenn der HTML-Teil unterhalb des PHP-Teil folgt
026.// wie in diesem vorhandenen Beispiel
027.define('ACTION_PATH', 'form.php');
028.
029.// E-Mailadresse
030.define('MAIL_SENDER', 'steve2911@web.de'); # Deine E-Mail-Adresse (From)
031.//Mail Betreff-Texte
032.define('MAIL_SUBJECT_A','Kontaktmitteilung aus Formular'); # Betreff für Adminmail (Mail erhält Admin)
033.
034.// Mail-Betreff für User
035.define('MAIL_SUBJECT_K','Ihre Kontaktmitteilung'); # Betreff für Mailkopie (Mail erhält User)
036.
037.// Charset für E-Mailinhalt
038.define('MAILCHARSET', 'utf-8'); # oder z.B. iso-8859-1
039.
040.// Starttext für Webmastermail
041.define('STARTTEXT',"Mitteilung vom Webformular:\n\r"); # wichtig hier die " belassen!
042.
043.// mail Kopie an User und Aktivierung der Checkbox für Mailkopie
044.define('MAIL_KOPIE', 0); # kann mit 0 deaktiviert werden
045.
046.// OPTIONAL - ermöglicht einen Dateiupload
047.define('FILE_UPLOAD', 0); # kann mit 0 deaktiviert werden
048.
049.// dateigröße für Dateiupload
050.define('FILE_SIZE', 1000000); # Angabe in Bytes. Ein MB entspricht 1000000 Bytes
051.
052.// absoluter path für das <a itxtdid="11116176" target="_blank" href="#" style="border-bottom: 0.1em solid darkgreen ! important; font-weight: normal ! important; text-decoration: underline ! important; color: darkgreen ! important; padding-bottom: 1px ! important; background-color: transparent ! important; background-image: none; padding-top: 0pt; padding-right: 0pt; padding-left: 0pt;" classname="iAs" class="iAs">speichern</a> der hochzuladenden Datei
053.// die Variable $_SERVER['DOCUMENT_ROOT'] ist das Hauptrootverzeichnis des Server
054.// ergänze nun das Verzeichnis, in welches die Dateien gespeichert werden und
055.// hänge an das Ende ein / (Beispiel: $_SERVER['DOCUMENT_ROOT'] .'/images/
056.define('FILE_SAVE_PATH', $_SERVER['DOCUMENT_ROOT'] .'/images/');
057.
058.define('ENCTYPE', ' enctype="multipart/form-data"');
059.
060.// Seitenangabe, auf welche Seite bei erfolgreicher Übermittlung weitergeleitet werden soll
061.define('LOCATION', $_SERVER['HTTP_HOST'] .'/emailok.php'); # relativer path!
062.
063.// %s stehen für einen Platzhalter und gleichzeitig als String
064.$USER_MAIL_TEXT = "Sehr geehrte/r %s %s %s,\n\n\r";
065.$USER_MAIL_TEXT .= "Ihre Mitteilung hatte folgenden Inhalt:\r\n\n\tStrasse HausNr.: %s %s\r\n\n\tPlz Ort: %s %s\r\n\tTelefon: %s %s\r\n\tE-Mail: %s\r\n\n\t";
066.$USER_MAIL_TEXT .= "Mitteilung:\r\n\t%s";
067.if(FILE_UPLOAD) { $USER_MAIL_TEXT .= "\r\n\n\tDateiname: %s"; }
068.$USER_MAIL_TEXT .= "\r\n\nSie erhalten in den nächsten Tagen eine Rückmeldung von mir.";
069.
070.
071.// wenn die Liste erweitert werden muss einfach ein , und dann die nächstfolgende
072.// Zahl. Bsp: , 4 => 'irgendwas'
073.// ); muss immer vorhanden sein
074.$htmlAddress = array(0 => 'Optional', 1 => 'Frau', 2 => 'Herr', 3 => 'Firma');
075.
076.// array mit mimeTypen für ein Dateiupload wie in diesem Beispiel mit image.
077.// das Array kann beliebig erweitert werden. Wichtig ist nur, dass die Typen entsprechend
078.// deklariert werden.
079.$fileTypes = array('image/jpeg', 'image/jpg', 'image/png', 'image/gif');
080./* ------------------------------- ab hier nicht ändern bzw. erst wieder ab HTML-Teil -------------------- */
081.
082.
083./**
084. * function _gp($var)
085. *
086. * @param int/string $var
087. * @return int/string
088. */
089.function _gp($var) {
090. if(isset($var)) {
091.
092. $val = isset($_POST[$var]) ? $_POST[$var] : '';
093.
094. return trim($val);
095.
096. }
097.}
098.
099./**
100. * function _selectAddress($htmlAddress, $select)
101. *
102. * @param array $htmlAddress
103. * @param string $select
104. * @return string
105. */
106.function _selectAddress($htmlAddress, $select) {
107.
108. if(is_array($htmlAddress)) {
109.
110. $ret = '';
111.
112. foreach($htmlAddress AS $k => $v) {
113.
114. if(isset($select) && $select == $k) { $selected = ' selected="selected"'; }
115. else { $selected = ''; }
116.
117. $ret .= "<option value=\"$k\"$selected>$v</option>\n";
118. }
119.
120. return print $ret;
121. } else {
122.
123. return print 'Es wurde keine Anrede definiert.';
124.
125. }
126.
127. return print $ret;
128.
129.}
130.
131./**
132. * function _E($int)
133. *
134. * @param integer $int
135. * @return string
136. */
137.function _E($int) {
138. $array = array( 1 => ERROR_1,
139. 2 => ERROR_2,
140. 3 => ERROR_3,
141. 4 => ERROR_4,
142. 5 => ERROR_5,
143. 6 => ERROR_6,
144. 7 => ERROR_7,
145. 8 => ERROR_8
146. );
147.
148. if($array[$int]) return $array[$int];
149.}
150.
151./**
152. * function checkMail($mailAdresse)
153. *
154. * @param string $mailAdresse
155. * @return boolean
156. */
157.function checkMail($mailAdresse) {
158. if(isset($mailAdresse)) {
159.
160. // Prüft auf PHP-Version
161. if(phpversion() >= '5.2.0') {
162. // prüft per filter_var und Parameter FILTER_VALIDATE_EMAIL
163. if(!filter_var($mailAdresse, FILTER_VALIDATE_EMAIL)) { return 2; }
164. return false;
165. } else {
166. // Prüft ob E-Mailadresse ungültig
167. if(preg_match('/^[^\s@<>]+@[^\s@<>]+\.[a-z]{2,4}$/', $mailAdresse)) { return 2; }
168. return false;
169. }
170. } else {
171.
172. return 1;
173.
174. }
175.}
176.
177./**
178. * checkFile($file)
179. *
180. * @param array $file
181. * @param array $types
182. * @return boolean
183. */
184.function checkFile($file, $types = array()) {
185.
186. if( isset($file['tmp_name']) && $file['tmp_name'] != '' &&
187. isset($file['name']) && $file['name'] != '') {
188.
189. $size = $file['size'];
190. $type = $file['type'];
191.
192.
193. if($size > FILE_SIZE) { return 7; }
194. elseif(isset($types) && !in_array($type, $types)) { return 8; }
195. else { return false; }
196. }
197.}
198.
199./**
200. * function fileUpload($file)
201. *
202. * @param array $file
203. * @param integer $action wird zur prüfung auf Fehler verwendet.
204. * 1 prüft auf Fehler
205. * 2 erlaubt den Dateiupload
206. * @return array $array
207. */
208.function fileUpload($file = array()) {
209.
210. if(isset($file['tmp_name']) && isset($file['name'])) {
211.
212. $tmp = $file['tmp_name'];
213. $name = $file['name'];
214. $type = $file['type'];
215.
216. $dateiendung = preg_replace('#[a-z+]+/#i', '', $type);
217. $filename = date('d_m_Y').'_'. time() .'.'. $dateiendung;
218.
219. if(move_uploaded_file($tmp, FILE_SAVE_PATH . $filename)) {
220.
221. $array = array(0 => $filename, 1 => $name);
222. return $array;
223.
224. }
225. } else {
226. return;
227. }
228.}
229.
230.$textmitteilung = ''; // Variable indiziert
231.$error_a = 0;
232.$checkedKopie = '';
233.$fileName = '';
234.$m_anrede = _gp('anrede');
235.
236.if(intval(_gp('action')) == 1) {
237.
238. // Prüft, ob die E-Mail-Adresse angegeben wurde.
239. if($m_email = _gp('email')) {
240. $error_a = checkMail($m_email);
241. } else {
242. $error_a = 1;
243. }
244.
245. // Prüft, ob eine Mitteilung erfolgte. Wenn nicht, gibt es eine Fehlermeldung.
246. if(!$m_mitteilung = _gp('mitteilung')) { $error_a = 3; }
247.
248.
249. // Prüft, ob der Familienname angegeben wurde. Wenn nicht erfolgt eine Fehlermeldung.
250. if(!$m_fname = _gp('fname')) { $error_a = 4; }
251.
252. // Prüft, ob der Vorname angegeben wurde. Wenn nicht, erfolgt eine Fehlermeldung
253. if(!$m_vorname = _gp('vorname')) { $error_a = 5; }
254.
255. // prüft ob die Uploaddatei erlaubt ist
256. if(FILE_UPLOAD === 1 && is_array($_FILES) && checkFile($_FILES['file'], $fileTypes) == 7) { $error_a = 7; }
257. if(FILE_UPLOAD === 1 && is_array($_FILES) && checkFile($_FILES['file'], $fileTypes) == 8) { $error_a = 8; }
258.
259. // prüfe ob User Mailkopie wünscht
260. if($mailKopie = _gp('kopie') == 1) { $checkedKopie = ' checked="checked"'; }
261.
262. // Prüft, ob eine Anrede ausgewählt wurde, wenn nicht
263. if(!$m_anrede = _gp('anrede')) { $m_anrede = ""; }
264.
265.
266. // Prüft, ob eine Strasse angegeben wurde. Wenn nicht, bleibt die Variable leer.
267. if(!$m_strasse = _gp('strasse')) { $m_strasse = ''; }
268.
269. // Prüft, ob die Hausnummer angegeben wurde. Wenn nicht, bleibt die Variable leer.
270. if(!$m_hausnummer = _gp('hausnummer')) { $m_hausnummer = ''; }
271.
272. // Prüft, ob eine PLZ angegeben wurde. Wenn nicht, bleibt die Variable leer.
273. if(!$m_plz = _gp('plz')) { $m_plz = ''; }
274.
275. // Prüft, ob ein Wohnort angegeben wurde. Wenn nicht, bleibt die Variable leer.
276. if(!$m_ort = _gp('ort')) { $m_ort = ''; }
277.
278. // Prüft, ob eine Vorwahl angegeben wurde. Wenn nicht, bleibt die Variable leer.
279. if(!$m_vw = _gp('vw')) { $m_vw = ''; }
280.
281. // Prüft, ob die Rufnummer angegeben wurde. Wenn nicht, bleibt die Variable leer.
282. if($m_rn = _gp('rn')) { $m_rn = ' / '. $m_rn; }
283.
284. // Prüft, ob alle Pflichtfelder vorhanden sind.
285. if(!$error_a) {
286.
287. $fileNameAdmin = '';
288. $fileNameUser = '';
289.
290. if(FILE_UPLOAD && is_array($_FILES['file'])) {
291.
292. $fileName = fileUpload($_FILES['file']);
293.
294. $fileNameAdmin = $fileName[0];
295. $fileNameUser = $fileName[1];
296.
297. }
298.
299. // Mailbedingungen in From von MIME und HTML
300. $header = 'MIME-Version: 1.0'."\r\n";
301. $header .= 'Content-type: text/html; charset='. MAILCHARSET ."\r\n";
302. $header .= 'From: <'. MAIL_SENDER .'>';
303.
304. if(isset($htmlAddress[$m_anrede])) { $anrede = $htmlAddress[$m_anrede]; }
305. else { $anrede = ''; }
306.
307. // Mitteilungstext für den Seiteninhaber
308. $mailTextWM = sprintf("%s\r\nAnrede: %s\n\rVorname Name: %s %s\n\rStrasse / HsNr: %s %s\n\rPLZ Wohnort: %s %s\n\rTelefon: %s %s\n\rE-Mail: %s\n\rMitteilung:\n\n\r%s\r\n\nDateiname: %s\r\n\n\nMitgeteilt am: %s",
309. STARTTEXT,
310. $anrede,
311. $m_vorname,
312. $m_fname,
313. $m_strasse,
314. $m_hausnummer,
315. $m_plz,
316. $m_ort,
317. $m_vw,
318. $m_rn,
319. $m_email,
320. $m_mitteilung,
321. $fileNameAdmin,
322. date('d.m.Y, H:i:s'));
323.
324. // E-Mail an Seiteninhaber wird gesendet.
325. mail(MAIL_SENDER, MAIL_SUBJECT_A, $mailTextWM, $header);
326.
327. // Bestätigungsmail an Absender
328. if(defined('MAIL_KOPIE') && MAIL_KOPIE == 1 && $mailKopie == 1) {
329.
330. // Textzusammenstellung für den Absender
331. $msgUser = sprintf( $USER_MAIL_TEXT,
332. $anrede,
333. $m_vorname,
334. $m_fname,
335. $m_strasse,
336. $m_hausnummer,
337. $m_plz,
338. $m_ort,
339. $m_vw,
340. $m_rn,
341. $m_email,
342. $m_mitteilung,
343. $fileNameUser);
344.
345.
346. // Senden der Bestätigungsmail an den Formularausfüllenden.
347. mail($m_email, MAIL_SUBJECT_K, $msgUser, $header);
348.
349. }
350.
351. // Nun leite um auf die Empfangsbestätigungs-Seite emailok.php.
352. header('Location: '.LOCATION);
353. exit();
354. }
355.}
356.?>
357.<!--
358.Dieser HTML Teil kann entweder direkt unterhalb des obigen PHP-Teil oder
359.in ein Template kopiert werden oder alternativ in eine andere PHP-Datei.
360.Es ist jedoch zwingend erforderlich, dass PHP-Code korrekt geparst wird.
361.
362.Das Tabellelayout ist lediglich als Beispiel.
363.-->
364.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
365. "http://www.w3.org/TR/html4/loose.dtd">
366.<html>
367.<head>
368.<title>Formular</title>
369.<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
370.<style type="text/css">
371.body {
372. background: #fffbd7;
373. margin: 0 0 0 0;
374. }
375.
376..text {
377. font-family: verdana, arial, helvetica, sans-serif;
378. font-style: normal;
379. font-size: 0.8em;
380. font-weight: normal;
381. color: #333;
382. }
383.
384..error {
385. font-family: verdana, arial, helvetica, sans-serif;
386. font-style: normal;
387. font-size: 0.9em;
388. font-weight: normal;
389. font-weight: bold;
390. color: #CC0000;
391. }
392.
393.table {
394. margin-left: auto;
395. margin-right: auto;
396. }
397.
398.td {
399. background: #edebd3;
400. }
401.</style>
402.</head>
403.<body class="text">
404.
405.<?php
406.// Bereich für Fehlerausgabe
407.if((int)$error_a) {
408.
409. echo '<p align="center" class="error">'. _E($error_a) .'</p>';
410.}
411.?>
412.
413.<form action="<?php echo ACTION_PATH; ?>" method="post"<?php echo ENCTYPE; ?>>
414.<input type="hidden" name="action" value="1" />
415.<table width="70%" cellspacing="2" cellpadding="5" border="0">
416.<tr>
417. <td colspan="2"><p align="center"><b>Kontakt</b></p><p align="right">* = Optional</td>
418.</tr><tr>
419. <td>Anrede *</td>
420. <td><select name="anrede">
421. <?php
422. _selectAddress($htmlAddress, $m_anrede);
423. ?>
424. </select>
425. </td>
426.</tr><tr>
427. <td>Vorname</td>
428. <td><input type="text" name="vorname" size="40" value="<?php if(isset($_POST['vorname'])) { echo $_POST['vorname']; } ?>" /></td>
429.</tr><tr>
430. <td>Name</td>
431. <td><input type="text" name="fname" size="40" value="<?php if(isset($_POST['fname'])) { echo $_POST['fname']; } ?>" /></td>
432.</tr><tr>
433. <td>Strasse / Haus.-Nr. *</td>
434. <td>
435. <input type="text" name="strasse" size="40" maxlength="100" value="<?php if(isset($_POST['strasse'])) { echo $_POST['strasse']; } ?>" />
436. <input type="text" name="hausnummer" size="5" maxlength="8" value="<?php if(isset($_POST['hausnummer'])) { echo $_POST['hausnummer']; } ?>" />
437. </td>
438.</tr><tr>
439. <td>PLZ / Wohnort *</td>
440. <td>
441. <input type="text" name="plz" size="5" maxlength="5" value="<?php if(isset($_POST['plz'])) { echo $_POST['plz']; } ?>" />
442. <input type="text" name="ort" size="40" maxlength="100" value="<?php if(isset($_POST['ort'])) { echo $_POST['ort']; } ?>" />
443. </td>
444.</tr><tr>
445. <td><a itxtdid="8523390" target="_blank" href="#" style="border-bottom: 0.1em solid darkgreen ! important; font-weight: normal ! important; text-decoration: underline ! important; color: darkgreen ! important; padding-bottom: 1px ! important; background-color: transparent ! important; background-image: none; padding-top: 0pt; padding-right: 0pt; padding-left: 0pt;" classname="iAs" class="iAs">Telefon</a> *</td>
446. <td>
447. <input type="text" name="vw" size="10" maxlength="5" value="<?php if(isset($_POST['vw'])) { echo $_POST['vw']; } ?>" /> /
448. <input type="text" name="rn" size="10" maxlength="15" value="<?php if(isset($_POST['rn'])) { echo $_POST['rn']; } ?>" />
449. </td>
450.</tr><tr>
451. <td>Ihre E-Mailadresse</td>
452. <td>
453. <input type="text" name="email" size="30" maxlength="50" value="<?php if(isset($_POST['email'])) { echo $_POST['email']; } ?>" />
454. </td>
455.</tr><tr>
456. <td valign="top">Mitteilung</td>
457. <td>
458. <textarea name="mitteilung" cols="60" rows="10"><?php if(isset($_POST['mitteilung'])) { echo $_POST['mitteilung']; } ?></textarea>
459. </td>
460.</tr>
461.<?php
462.if(MAIL_KOPIE === 1) {
463.?>
464.<tr>
465. <td>Wünschen Sie eine Kopie</td>
466. <td><input type="checkbox" value="1" name="kopie"<?php echo $checkedKopie; ?> /></td>
467.</tr>
468.<?php
469.}
470.if(FILE_UPLOAD === 1) {
471.?>
472.<tr>
473. <td>Bilddatei anhängen</td>
474. <td><input type="file" size="50" name="file" /></td>
475.</tr>
476.<?php } ?>
477.<tr>
478. <td colspan="2">
479. <p align="center"><input type="submit" value="Mittelung senden" /></p>
480. </td>
481.</tr>
482.</table>
483.</form>
484.
485.</body>
486.</html>
undefined
Ps-ler ;-)
undefined
Welche php-version läuft bei dir? Mach mal eine Datei, info.phpDa hätte ich auch selber drauf kommen können ;-)
Aber vielen Dank.
Nur hab ich jetzt einen neuen Error:
Fatal error: Call to undefined function filter_var() in /usr/export/www/vhosts/funnetwork/hosting/steve2911/form.php on line 163
Link ist der selbe.
<?PHP
phpinfo();
?>
undefined
Den Link hab ich mal rausgemacht, geht keinen was an, was sonst noch drin steht. Die Version ist ja ok.Hab ich gemacht, heir ist das Ergebniss.
Ps-ler ;-)
Willkommen auf PSD-Tutorials.de
In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.
Nächster neuer Gratisinhalt
Statistik des Forums