E-Mail-Formular: Fehler mit Absender und Zeilenumbruch

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 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":

    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
  • öh... ja, entschuldigung:

    Quellcode

    1. if ($_GET['an'] == "abso_admin")
    2. {
    3. $titel_tab = "Absoluten Administrator - ";
    4. if ($_POST['send'] == "1")
    5. {
    6. $empfaenger = 'abso_admin@fipsii.de';
    7. $email_adresse = $_POST['email_adresse'];
    8. $betreff = $_POST['betreff'];
    9. $nachricht = $_POST['nachricht'];
    10. if (($email_adresse == "") OR ($nachricht == "") OR ($betreff == "") OR (($_SESSION['eingeloggt'] != TRUE) AND (($_SESSION['captcha_spam'] == "") AND ($_POST["sicherheitscode"] != $_SESSION['captcha_spam']))))
    11. {
    12. $err_text = 'Bitte füllen Sie alle Felder korrekt aus:<br />';
    13. if ($email_adresse == "")
    14. {
    15. $err_text .= 'Bitte geben Sie eine E-Mail-Adresse an.<br />';
    16. }
    17. if ($nachricht == "")
    18. {
    19. $err_text .= 'Bitte geben Sie eine Nachricht ein.<br />';
    20. }
    21. if ($betreff == "")
    22. {
    23. $err_text .= 'Bitte geben Sie ienen Betreff an.<br />';
    24. }
    25. if (($_SESSION['eingeloggt'] != TRUE) AND (($_SESSION['captcha_spam'] == "") AND ($_POST['sicherheitscode'] != $_SESSION['captcha_spam'])))
    26. {
    27. $err_text .= 'Die Sicherheitsüberprüfung war nicht richtig.<br />';
    28. }
    29. echo $err_text;
    30. echo '<form action="" method="post">';
    31. echo '<table width=100% cellpadding=10 border=0>';
    32. echo '<tr>';
    33. echo '<td>Ihre E-Mail-Adresse:</td>';
    34. echo '<td><input type="text" name="email_adresse" value="' . $email_adresse . '"></td>';
    35. echo '</tr><tr>';
    36. echo '<td>Betreff:</td>';
    37. echo '<td><input type="text" name="betreff" value="' . $betreff . '"></td>';
    38. echo '</tr><tr>';
    39. echo '<td>Ihre Nachricht:</td>';
    40. echo '<td><textarea name="nachricht" cols="40" row="30">' . $nachricht . '</textarea></td>';
    41. echo '</tr>';
    42. if ($_SESSION['eingeloggt'] != TRUE)
    43. {
    44. echo '<tr>';
    45. echo '<td><img src="/data/templates/captcha/captcha.php" border="0" title="Sicherheitscode"></td>';
    46. echo '<td><input type="text" name="sicherheitscode" size="5"></td>';
    47. echo '</tr>';
    48. }
    49. echo '<tr>';
    50. echo '<td>&nbsp;</td>';
    51. echo '<td><input type="hidden" name="send" value="1"><input type="submit" name="submit" value="Formular Abschicken"></td>';
    52. echo '</tr>';
    53. echo '</table>';
    54. echo '</form>';
    55. }
    56. else
    57. {
    58. $text = 'IP-Adresse des Absenders: ' . $ip . \n;
    59. $text .= 'Zeit des Abschickens: ' . $zeit . '\n';
    60. if ($_SESSION['eingeloggt'] == TRUE)
    61. {
    62. $text .= 'Username des Absenders: ' . $name . '\n';
    63. }
    64. $text .= 'Nachricht:' . '\n';
    65. $text .= $nachricht;
    66. mail($empfaenger, $betreff, $text, $absender);
    67. 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';
    68. }
    69. }
    70. else
    71. {
    72. echo '<form action="" method="post">';
    73. echo '<table width=100% cellpadding=10 border=0>';
    74. echo '<tr>';
    75. echo '<td>Ihre E-Mail-Adresse:</td>';
    76. echo '<td><input type="text" name="email_adresse" value="' . $_SESSION['email_adresse'] . '"></td>';
    77. echo '</tr><tr>';
    78. echo '<td>Betreff:</td>';
    79. echo '<td><input type="text" name="betreff"></td>';
    80. echo '</tr><tr>';
    81. echo '<td>Ihre Nachricht:</td>';
    82. echo '<td><textarea name="nachricht" cols="40" row="30"></textarea></td>';
    83. echo '</tr>';
    84. if ($_SESSION['eingeloggt'] != TRUE)
    85. {
    86. echo '<tr>';
    87. echo '<td><img src="/data/templates/captcha/captcha.php" border="0" title="Sicherheitscode"></td>';
    88. echo '<td><input type="text" name="sicherheitscode" size="5"></td>';
    89. echo '</tr>';
    90. }
    91. echo '<tr>';
    92. echo '<td>&nbsp;</td>';
    93. echo '<td><input type="hidden" name="send" value="1"><input type="submit" name="submit" value="Formular Abschicken"></td>';
    94. echo '</tr>';
    95. echo '</table>';
    96. echo '</form>';
    97. }
    98. echo '<div id="klein-rechts"><a href="formular.php">Zurück zu den Formularen</a></div>';
    99. }
    Alles anzeigen
  • 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:

    Quellcode

    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:

    Quellcode

    1. 'Zeit des Abschickens: ' . $zeit . "\n";
  • Passe Zeile 68 bitte mal wie folgt an und probiere es bitte erneut:

    Quellcode

    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.