mail() Funktion

tadlos

Mitglied
Hallo liebe Leute,

ich schreibe zur Zeit ein kleines Kontaktformular.
Die Übertragung der Daten aus dem Formular funktioniert tatsächlich schon :).
Allerdings werden die Daten in der Email ohne Absätze angezeigt, das ist etwas unübersichtlich.

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Unbenanntes Dokument</title>

</head>


<body>

<?php

$mail = "mail@mail.de";

$daten =     $_REQUEST['name'] .

                $_REQUEST['adresse'] .

                $_REQUEST['telefon'] .

                $_REQUEST['reisetage'] .

                $_REQUEST['personenzahl'] .

                $_REQUEST['kinder'];


            

    if ($_REQUEST['abschicken']){

        {

        echo $_REQUEST['name'];

        }

        {

        echo $_REQUEST['adresse'];

        }

        {

        echo $_REQUEST['telefon'];

        }

        {

        echo $_REQUEST['reisetage'];

        }

        {

        echo $_REQUEST['personenzahl'];

        }

        {

        echo $_REQUEST['kinder'];

        }

        mail($mail, "Neue Buchungsanfrage", "$daten");

    }

    

?>

    Vielen Dank! Ihre Buchungsanfrage wurde entgegen genommen und wird in Kürze bearbeitet.

</body>

</html>
Bei php.net habe ich nun nach Möglichkeiten gesucht.
Sobald ich jedoch den Quelltext dementsprechend anpasse wird mir nachdem ich das Formular erneut ausgefüllt habe und abgeschickt habe eine leere Seite angezeigt
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php
$mail = "mail@mail.de";
$daten =     $_REQUEST['name'] . "\r\n"
                $_REQUEST['adresse'] .
                $_REQUEST['telefon'] .
                $_REQUEST['reisetage'] .
                $_REQUEST['personenzahl'] .
                $_REQUEST['kinder'];

             
    if ($_REQUEST['abschicken']){
        {
        echo $_REQUEST['name'];
        }
        {
        echo $_REQUEST['adresse'];
        }
        {
        echo $_REQUEST['telefon'];
        }
        {
        echo $_REQUEST['reisetage'];
        }
        {
        echo $_REQUEST['personenzahl'];
        }
        {
        echo $_REQUEST['kinder'];
        }
        mail($mail, "Neue Buchungsanfrage", "$daten");
    }
     
?>
    Vielen Dank! Ihre Buchungsanfrage wurde entgegen genommen und wird in Kürze bearbeitet.
</body>
</html>

Eine interessante Alternative war auch eine HTML Seite per Mail zu verschicken, das wäre mir sogar am Liebsten.
Dann kann das alles noch attraktiver gestaltet werden.
Aber auch hier das selbe Fehlerbild

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php
$mail = "mail@mail.de";
$daten =     '
        <html>
        <head>
        <title>Test</title>
        </head>
     
        <body>
        <?php
        <table width="200" border="1">
        <tr>
            <td>
            </td>
            <td>
            {
            echo $_REQUEST['name'];
            }
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
            {
            echo $_REQUEST['adresse'];
            }
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
            {
            echo $_REQUEST['telefon'];
            }
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
            {
            echo $_REQUEST['reisetage'];
            }
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
            {
            echo $_REQUEST['personenanzahl'];
            }
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
            {
            echo $_REQUEST['kinder'];
            }
            </td>
        </tr>
        </table>
        ?>
        </body>
        </html>';

             
        $header[] = 'MIME-Version: 1.0';
        $header[] = 'Content-type: text/html; charset=iso-8859-1';
     
        mail($mail, "Neue Buchungsanfrage", "$daten", implode("\r\n", $header));
    }
     
?>
    Vielen Dank! Ihre Buchungsanfrage wurde entgegen genommen und wird in Kürze bearbeitet.
</body>
</html>

Ich vermute das ich einen Fehler bei der Variable $daten mache, aber ich komm leider nicht weiter.

Kann mir jemand helfen?

Mfg Stefan
 
Zuletzt bearbeitet:
Lösung
Danke, danke, danke..
Ich weiß nicht woran das nun genau gelegen hat. Mit mal kamen Emails an.
Anscheinend reagiert PHP auch auf Druckwellen, weil ich die ganze Bude zusammen gebrüllt habe :p.

Ich bin dann nochmal den Instruktionen von php.net gefolgt und habe es nun sogar geschafft eine HTML Code zu verschicken. Bin stolz wie Bolle... Geil.. Besten Dank!

Wen es interessiert und eventuell weiterhilft poste ich nochmal den Code

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Unbenanntes Dokument</title>

</head>


<body>



<?php...
Leider funktioniert das wieder nicht.
Der Code ist unverändert, einmal hat es funktioniert.

Das kann ja bald nur am Host liegen.

Ich habe mehrfach den Cache geleert, den Router zwecks neuer IP Vergabe neu gestartet, Computer neu gestartet.

Selbst der Beispielcode von php.net funktioniert nicht.

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>

<?php
// Die Nachricht
$nachricht = "Zeile 1\r\nZeile 2\r\nZeile 3";

// Falls eine Zeile der Nachricht mehr als 70 Zeichen enthälten könnte,
// sollte wordwrap() benutzt werden
$nachricht = wordwrap($nachricht, 70, "\r\n");

// Verschicken
mail('beuth.stefan@web.de', 'Mein Betreff', $nachricht);
?>


</body>
</html>
 
zur Not kann Ich Dir ZAp-Hosting oder Nitrado empfehlen für den Test :)

Es kann an der Einstellung des Webservers liegen aber das findest du meist über die Logs raus, sofern du Zugriff hast :)
 
Ok auf einem anderen Host funktioniert das einwandfrei.
Die Homepage ist bisher bei united-host.de hochgeladen, mal sehen ob ich da jemanden erreiche.
 
Zurück