Seite 1 von 4

php mail funktion

Verfasst: 04.04.2005 15:46
von zigapeda
Hi Leute

nach dieser fehlermeldung "Parse error: parse error, unexpected T_STRING in /home/www/htdocs/zigapeda.de/kontakt-senden.php on line 21" müsste in der Zeile "mail("mail@zigapeda.de", "Kontakt - Homepage", $_REQUEST['nachricht'], "Von:".$_REQUEST['email']);" ein fehler sein. Wo ist der? ich kann ihn nicht finden?

Verfasst: 04.04.2005 17:23
von the one and only
Du könntest uns ja den Code deiner Mailfunktion geben den du wie ich dich kenne 1 zu 1 aus meiner Mailfunktion übernommen hast :twisted: . Dann würden wir wesentlich mehr wissen.

Verfasst: 04.04.2005 17:57
von Lukaso
Hallo,

das "Von:".$_REQUEST['email'], kann schon mal gar nicht sein! Da kommt eingentlich der header hin!

probier mal volgendes:

Code: Alles auswählen

        $header = "MIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1\r\nFrom: " . $_POST['email'] . " <" . $_POST['email'] . ">\r\n";
        mail("mail@zigapeda.de", "Kontakt - Homepage", $_POST['nachricht'], $header);
o.g. genannter Code funtzt bei mir 100%ig! Es könnte auch sein das der Fehler oberhalb liegt, PHP hats nicht so mit genauen zeilenangaben!

MFG Lukaso

Verfasst: 04.04.2005 18:09
von zigapeda
das dort der header hinkommt ist mir schon klar mit email ist ja auch die email adresse gemeint. jetzt hab ich das gleiche mit $_post['nachricht'] usw. ausprobiert und es funktioniert immer noch nicht.
Hier könnt ihr es euch anschauen

Verfasst: 04.04.2005 18:26
von the one and only
Ohne Source können wir nichts damit anfangen, also bitte posten <)

Verfasst: 04.04.2005 18:30
von zigapeda

Code: Alles auswählen

<html>
<head>
  <meta content="text/html; charset=ISO-8859-15"
 http-equiv="content-type">
  <title>zigapeda.de - Email</title>
  <meta content="zigapeda" name="author">
</head>
<body style="color: rgb(0, 0, 255); background-color: rgb(255, 204, 0);"
 alink="#33ff33" link="#33ccff" vlink="#009900">
<br>
<script language="php">
if($_POST['abschicken'])
{
if(empty($_POST['name']) || empty($_POST['email']) || empty($_POST['nachricht']))
{
echo ("Bitte gehen sie <a href=\"javascript:history.back();\">zurück</a> und füllen alle Felder aus!
}
else
{
$header = "MIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1\r\nFrom: " . $_POST['email'] . " <" . $_POST['email'] . ">\r\n";
mail("mail@zigapeda.de", "Kontakt - Homepage", $_POST['nachricht'], $header]);
}
}
else
{
echo"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a href=\"kontakt.php\">Seite</a>.";
}
</script>
<br>
</body>
</html>

Verfasst: 04.04.2005 18:49
von bluejoke
Ich denke dieser Zeilenumbruch von Line 22 auf Line 23 ist unzulässig, bin mir aber nicht sicher.

EDIT: Außerdem ist dieses Formular nicht gerade Userfreundlich
Bitte gehen sie zurück [...]

Verfasst: 04.04.2005 18:55
von zigapeda
Das ist kein Zeilen umbruch, das wird nur in zwei zeilen aufgeteilt weil das browser fenster zu klein ist.

Verfasst: 04.04.2005 19:01
von the one and only
Der Zeilenumbruch ist denk ich Auflösungsbedingt und im Grunde nicht vorhanden.

Was soll denn das if($_POST['abschicken']) usw? Wenn die Seite aufgerufen wird gehe ich doch davon aus dass irgendwer auf "Abschicken" oder so geklickt hat also muss man das doch gar nicht überprüfen oder für was ist das da?

Ich würds so machen:

Code: Alles auswählen


if(empty($HTTP_POST_VARS["name"]) || empty($HTTP_POST_VARS["email"]) || empty($HTTP_POST_VARS["nachricht"]))
{
echo ("Bitte gehen sie <a href=\"javascript:history.back();\">zurück</a> und füllen alle Felder aus!
}
else
{
$header = "MIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1\r\nFrom: " . $HTTP_POST_VARS["email"] . " <" . $HTTP_POST_VARS["email"'] . ">\r\n";
mail("mail@zigapeda.de", "Kontakt - Homepage", $HTTP_POST_VARS["nachricht"], $header]);
}

Abgesehen davon, wieso frägst du den User nach seinem Namen? Der wird doch sowieso net mit geschickt :?

Verfasst: 04.04.2005 19:11
von Lukaso
@zigapeda & the one and only
zigapeda hat geschrieben:

Code: Alles auswählen

echo ("Bitte gehen sie <a href="javascript:history.back();">zurück</a> und füllen alle Felder aus!
*hust*

Die Zeile ist schon totaler blödsinn, keinwunder das es Fehler gibt!! Eine ( die da nicht hinkommt und kein abschließendes ".

ersetze die zeile mal mit ...

Code: Alles auswählen

echo "Bitte gehen sie <a href="javascript:history.back();">zurück</a> und füllen alle Felder aus!"; 


@the one and only
Benutze lieber $_POST bzw. $_REQUEST!! -> Zitat aus dem PHP-Handbuch:
<?php
// Seit PHP 4.1.0 verfügbar

echo $_POST['benutzername'];
echo $_REQUEST['benutzername'];

import_request_variables('p', 'p_');
echo $p_benutzername;

// Seit PHP 3 verfügbar. Ab PHP 5.0.0 können diese langen
// vordefinierten Variablen mit der Anweisung register_long_arrays
// deaktiviert werden.

echo $HTTP_POST_VARS['benutzername'];

// Verfügbar, falls die PHP-Anweisung register_globals = on. Ab
// PHP 4.2.0 ist der standardmäßige Wert von register_globals = off.
// Es ist nicht empfehlenswert, diese Methode zu verwenden, bzw. sich
// darauf zu verlassen.

echo $benutzername;
?>


MFG Lukaso


PS: Gewöhne dich an einrückungen! Da wird man ja blind beim lesen :mrgreen: