You are not logged in.

  • Login

1

Monday, July 4th 2011, 1:56pm

E-Mail-Formular: Fehler mit Absender und Zeilenumbruch

Hallo zusammen,

ich habe vor ewigkeiten schon ein kleines Formular gebastelt, bei dem mir jetzt erst zwei Fehleraufgefallen sind:

1:

Bei Absender steht nie die angegebene E-Mail-Adresse... die E-Mail-"Formung":

PHP Quellcode

1
mail($empfaenger, $betreff, $text, $absender);

(Habe ich von einem Tutorital)

$empfaenger wird von mri vorgegeben, $text wird zusammengebastelt und $betreff und $absender werden direkt vom Formular übernommen.
Allerdings steht bei Absender dann nie die Angabe,, sondern immer www-data.

2:

Wenn eine E-Mail mit einem Formular gebaut wird und ein Zeilenumbruch gebraucht wird, wird dieser doch mit \n gemacht, oder? Das Funktioniert nicht... habs auch schon mir <br /> und /n Probiert, aber alles Fails...:(

Ich hoffe mal wieder auf eure Hilfe

LG

Fipsi

2

Monday, July 4th 2011, 2:27pm

Hallo,

Evtl postet du uns ein wenig mehr Code deines Formulars?
Das eigentliche HTML Formular wäre auch nicht schlecht

3

Monday, July 4th 2011, 2:31pm

öh... ja, entschuldigung:

PHP Quellcode

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
if ($_GET['an'] == "abso_admin")
   {
    $titel_tab = "Absoluten Administrator - ";
    if ($_POST['send'] == "1")
	 {
	  $empfaenger = 'abso_admin@fipsii.de';
	  $email_adresse = $_POST['email_adresse'];
	  $betreff = $_POST['betreff'];
	  $nachricht = $_POST['nachricht'];
 
	  if (($email_adresse == "") OR ($nachricht == "") OR ($betreff == "") OR (($_SESSION['eingeloggt'] != TRUE) AND (($_SESSION['captcha_spam'] == "") AND ($_POST["sicherheitscode"] != $_SESSION['captcha_spam']))))
	  {
	   $err_text = 'Bitte füllen Sie alle Felder korrekt aus:<br />';
	   if ($email_adresse == "")
	    {
		 $err_text .= 'Bitte geben Sie eine E-Mail-Adresse an.<br />';
		}
	   if ($nachricht == "")
	    {
		 $err_text .= 'Bitte geben Sie eine Nachricht ein.<br />';
		}
	   if ($betreff == "")
	    {
		 $err_text .= 'Bitte geben Sie ienen Betreff an.<br />';
		}
	   if (($_SESSION['eingeloggt'] != TRUE) AND (($_SESSION['captcha_spam'] == "") AND ($_POST['sicherheitscode'] != $_SESSION['captcha_spam'])))
	    {
		 $err_text .= 'Die Sicherheitsüberprüfung war nicht richtig.<br />';
		}
 
		echo $err_text;
	    echo '<form action="" method="post">';
	     echo '<table width=100% cellpadding=10 border=0>';
	      echo '<tr>';
		   echo '<td>Ihre E-Mail-Adresse:</td>';
		   echo '<td><input type="text" name="email_adresse" value="' . $email_adresse . '"></td>';
		  echo '</tr><tr>';
		   echo '<td>Betreff:</td>';
		   echo '<td><input type="text" name="betreff" value="' . $betreff . '"></td>';
		  echo '</tr><tr>';
		   echo '<td>Ihre Nachricht:</td>';
		   echo '<td><textarea name="nachricht" cols="40" row="30">' . $nachricht . '</textarea></td>';
	      echo '</tr>';
		  if ($_SESSION['eingeloggt'] != TRUE)
		   {
		    echo '<tr>';
             echo '<td><img src="/data/templates/captcha/captcha.php" border="0" title="Sicherheitscode"></td>';
             echo '<td><input type="text" name="sicherheitscode" size="5"></td>';
	        echo '</tr>';
		   }
		  echo '<tr>';
		   echo '<td>&nbsp;</td>';
		   echo '<td><input type="hidden" name="send" value="1"><input type="submit" name="submit" value="Formular Abschicken"></td>';
		  echo '</tr>';
	     echo '</table>';
	    echo '</form>';
	   }
	  else
	   {
	    $text = 'IP-Adresse des Absenders: ' . $ip . \n;
        $text .= 'Zeit des Abschickens: ' . $zeit . '\n';
		if ($_SESSION['eingeloggt'] == TRUE)
		 {
          $text .= 'Username des Absenders: ' . $name . '\n';
		 }
        $text .= 'Nachricht:' . '\n';
		$text .= $nachricht;
        mail($empfaenger, $betreff, $text, $absender);
        echo 'Vielen Dank für Ihre Mitteilen.<br />Wir werden uns bemühen, Ihre Anfrage so schnell wie möglich zu bearbeiten und ihnen zu antworten.<br />Das Team';
	   }
	 }
	else
	 {
	  echo '<form action="" method="post">';
	   echo '<table width=100% cellpadding=10 border=0>';
	    echo '<tr>';
		 echo '<td>Ihre E-Mail-Adresse:</td>';
		 echo '<td><input type="text" name="email_adresse" value="' . $_SESSION['email_adresse'] . '"></td>';
		echo '</tr><tr>';
		 echo '<td>Betreff:</td>';
		 echo '<td><input type="text" name="betreff"></td>';
		echo '</tr><tr>';
		 echo '<td>Ihre Nachricht:</td>';
		 echo '<td><textarea name="nachricht" cols="40" row="30"></textarea></td>';
	    echo '</tr>';
		if ($_SESSION['eingeloggt'] != TRUE)
		 {
		  echo '<tr>';
           echo '<td><img src="/data/templates/captcha/captcha.php" border="0" title="Sicherheitscode"></td>';
           echo '<td><input type="text" name="sicherheitscode" size="5"></td>';
	      echo '</tr>';
		 }
		echo '<tr>';
		 echo '<td>&nbsp;</td>';
		 echo '<td><input type="hidden" name="send" value="1"><input type="submit" name="submit" value="Formular Abschicken"></td>';
		echo '</tr>';
	   echo '</table>';
	  echo '</form>';
	 }
	echo '<div id="klein-rechts"><a href="formular.php">Zurück zu den Formularen</a></div>';
   }

Janniboy

Unregistered

4

Monday, July 4th 2011, 3:13pm

Du verwendest in deinem Code die Variable $absender (Zeile 68) und nirgendswo wird diese definiert. Somit erhälst du wahrscheinlich auch immer www-data als Absender.

Einen Zeilenumbruch leitest du in deinem Code folgendermaße ein:

Source code

1
 'Zeit des Abschickens: ' . $zeit . '\n';


funktioniert so nicht, da der PHP-Parser dort nicht durchläuft. Nutze anstatt von ' die doppelten Anführungszeichen " bei Zeilenumbrüchen, dann sollte es funktionieren. Also so:

Source code

1
 'Zeit des Abschickens: ' . $zeit . "\n";

5

Monday, July 4th 2011, 6:22pm

Hallo,

letzteres Problem hat sich jetzt gelöst...
allerdings schriebt der jetzt die absender-adresse in den e-mail-inhalt und absender bleibt immernoch www-data

se Z

Unregistered

6

Monday, July 4th 2011, 7:23pm

Passe Zeile 68 bitte mal wie folgt an und probiere es bitte erneut:

Source code

1
mail($empfaenger, $betreff, $text, 'From: '.$email_adresse);


ggf. musst du die Variable $email_adresse noch anpassen, falls es die falsche Variable ist, das weiß ich ja nicht.

7

Monday, July 4th 2011, 7:30pm

yes:) passt:)

dankeschön... jetzt muss ich nur nochmal das formular etwas überarbeiten, da ich gerade nen fail dank jemanden gefunden habe;)^^

Janniboy

Unregistered

8

Monday, July 4th 2011, 8:04pm

Jo, ich war eben auf deiner Page und konnte mit Leertasten das Formular abschicken und OHNE Captcha!

9

Tuesday, July 5th 2011, 6:40am

wtf? ohne Captcha? ok, dann muss ich wirklich nochmal schauen... weil bei ner kleinen umstruturierung is mir wohl n wurm reingekommen :/

Similar threads

Social bookmarks