Seite 1 von 1
Kontaktformular: mail wird versandt, aber functions unknown?
Verfasst: Mi 17. Jan 2007, 12:27
von mkayi
Heda,
Ich benutze das Standardkontaktformular (ergänzt um eine Korrektur aus diesem Forum, damit es auch tatsächlich Mails versendet...)
Was höchst esoterisch ist: es versendet Mails mit allem was dazugehört, aber statt der Meldung "Ihr Anliegen blabla" (also alles in Butter) bekomme ich die Meldung, dass ein "call to undefined funcion ishtml()" stattgefunden habe.
Da ich einfach nur so schnell wie möglich sehen wollte, was ich tun muss, damit ich diese Meldung nicht mehr sehe (zumal der Versand ja wie geplant statt fand!), habe ich die entsprechende Zeile im Modul mal schnell auskommentiert.
Nun beschwerte sich die Seite bei Versand aber über isMail() und nach entsprechender Auskommentierung über addAddress() und schließlich sogar über send()!
Alles lauter unbekannte Funktionen! Dabei werden alle Mails brav versandt! Die Datei phpmailer ist vorhanden und die bemängelten Funktionen im dortigen Quellcode auch.
Kann sich jemand einen Reim auf diese pittoresken Meldungen machen?
Ich hätte so gern eine kleine Erfolgsmeldung für den User, denn schließlich kommt seine Mail ja an...

Verfasst: Mi 17. Jan 2007, 15:12
von emergence
wie lauten die genauen fehlermeldungen ?
...und naja, wie sieht den dein modifiziertes modul nun aus ?
Verfasst: Mi 17. Jan 2007, 17:13
von mkayi
Hallo
Fehlermeldungen waren jeweils
Fatal error: Call to undefined function: send() in {lokalerServerpfad}/contenido/includes/include.con_editcontent.php(618) : eval()'d code on line 757
wobei jeweils der Name der Funktion als auch die Zeilenangabe mit jedem Auskommentieren sich änderten. In diesem Falle ( send() ) das oben beschriebene Endergebnis...
Hier mal das Modul nach Korrektur durch im Forum gefundenen Workaround für das Fehlverhalten, dass gar kein Versand statt fand, also ohne auskommentierte Funktionsaufrufe. In dieser Form beschwert sich PHP über die Funktion ishtml(), danach Hergang wie oben beschrieben.
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Contact form
* Author(s) : Andreas Lindner
* Copyright : Contenido - four for business
* Created : 12.08.2005
************************************************/
#Includes
cInclude("classes", "class.phpmailer.php");
if (!isset ($_POST['send'])) {
#Form has not been sent yet
cInclude('classes', 'class.article.php');
cInclude('classes', 'class.template.php');
#Create contact form
echo '<form name="kontaktform" id="kontaktform" method="post" action="'.$sess->url("front_content.php?idcat=$idcat&idart=$idart&parentid=$parentid").'">';
echo '<input type="hidden" name="send" value="1">';
if (!is_object($tpl)) {
$tpl = new Template;
}
$tpl->set("s", "ANREDE", mi18n("Anrede"));
$tpl->set("s", "ANREDE_OPTION1", mi18n("Herr"));
$tpl->set("s", "ANREDE_OPTION2", mi18n("Frau"));
$tpl->set("s", "NACHNAME", mi18n("Name"));
$tpl->set("s", "VORNAME", mi18n("Vorname"));
$tpl->set("s", "FIRMA", mi18n("Firma"));
$tpl->set("s", "STRASSE", mi18n("Straße/Nr."));
$tpl->set("s", "PLZORT", mi18n("PLZ/Ort"));
$tpl->set("s", "TELEFON", mi18n("Telefon"));
$tpl->set("s", "EMAIL", mi18n("eMail"));
$tpl->set("s", "ANLIEGEN", mi18n("Nachricht"));
$tpl->set("s", "PFLICHTFELDER", mi18n("Pflichtfelder"));
$tpl->set("s", "ABSCHICKEN", mi18n("Abschicken"));
$tpl->set("s", "LOESCHEN", mi18n("Löschen"));
$tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/kontaktformular.html");
echo '</form>';
} elseif ($_POST['send'] == 1) {
#Form has been sent
#Check user input
$noerrors = true;
$msg = '';
if ($_POST['Vorname'] == '') {
$noerrors = false;
$msg .= mi18n("Bitte geben Sie Ihren Vornamen ein!")."<br/>";
}
if ($_POST['Nachname'] == '') {
$noerrors = false;
$msg .= mi18n("Bitte geben Sie Ihren Namen ein!")."'<br/>";
}
if ($_POST['EMail'] == '') {
$noerrors = false;
$msg .= mi18n("Bitte geben Sie Ihre EMail-Adresse ein!")."<br/>";
}
if ($_POST['Strasse'] == '') {
$noerrors = false;
$msg .= mi18n("Bitte geben Sie Ihre Straße ein!")."<br/>";
}
if ($_POST['PLZOrt'] == '') {
$noerrors = false;
$msg .= mi18n("Bitte geben Sie Ihre PLZ/Ort ein!")."<br/>";
}
if ($noerrors == false) {
#Errors have been found
echo mi18n("Beim Versenden sind folgende Fehler aufgetreten:")."<br/>";
echo $msg.'<br/>';
echo '<a href="javascript:history.back();">'.mi18n("Zurück").'</a>';
} else {
#No errors, create and send mail
$absender = "CMS_VALUE[0]";
$absendername = "CMS_VALUE[2]";
$empfaenger = "CMS_VALUE[1]";
$betreff = "CMS_VALUE[3]";
$header = 'From: '.$absendername .'<'.$absender.'>';
if (is_array($_POST)) {
foreach ($_POST as $key => $value) {
if ($key != 'send') {
$mail_body .= "$key : $value\n";
}
}
}
#send mail only with PHP-mail()
$sendsuccess = @mail($empfaenger, $betreff, $mail_body, $header);
$mail_body .= '</table></bo'.'dy></html>';
$mail->Host = "localhost";
$mail->IsHTML(true);
#Get mailer from settings
switch (strtolower("CMS_VALUE[4]")) {
case "smtp" :
$mail->IsSMTP();
$host = "CMS_VALUE[5]";
$user = "CMS_VALUE[6]";
$password = "CMS_VALUE[7]";
if (($host != '') && ($user != '') && ($password != '')) {
$mail-> $SMTPAuth = true;
$mail->Host = $host;
$mail->Username = $user;
$mail->Password = $password;
}
break;
case "mail" :
$mail->IsMail();
break;
case "sendmail" :
$mail->IsSendmail();
break;
case "qmail" :
$mail->IsQmail();
break;
default :
}
$mail->From = "CMS_VALUE[0]";
$mail->FromName = "CMS_VALUE[2]";
#$mail->AddAddress("CMS_VALUE[1]", "");
$mail->Subject = "CMS_VALUE[3]";
$mail->Body = $mail_body;
$mail->WordWrap = 50;
$mail->Send();
#Display message after mail is sent
echo mi18n("Ihr Anliegen wurde uns übermittelt. Vielen Dank!")."<br/>";
}
}
?>
Verfasst: Mi 17. Jan 2007, 17:53
von emergence
ähm, vielleicht so ?
Code: Alles auswählen
<?php
if (!isset ($_POST['send'])) {
#Form has not been sent yet
cInclude('classes', 'class.article.php');
cInclude('classes', 'class.template.php');
#Create contact form
echo '<form name="kontaktform" id="kontaktform" method="post" action="'.$sess->url("front_content.php?idcat=$idcat&idart=$idart&parentid=$parentid").'">';
echo '<input type="hidden" name="send" value="1">';
if (!is_object($tpl)) {
$tpl = new Template;
}
$tpl->set("s", "ANREDE", mi18n("Anrede"));
$tpl->set("s", "ANREDE_OPTION1", mi18n("Herr"));
$tpl->set("s", "ANREDE_OPTION2", mi18n("Frau"));
$tpl->set("s", "NACHNAME", mi18n("Name"));
$tpl->set("s", "VORNAME", mi18n("Vorname"));
$tpl->set("s", "FIRMA", mi18n("Firma"));
$tpl->set("s", "STRASSE", mi18n("Straße/Nr."));
$tpl->set("s", "PLZORT", mi18n("PLZ/Ort"));
$tpl->set("s", "TELEFON", mi18n("Telefon"));
$tpl->set("s", "EMAIL", mi18n("eMail"));
$tpl->set("s", "ANLIEGEN", mi18n("Nachricht"));
$tpl->set("s", "PFLICHTFELDER", mi18n("Pflichtfelder"));
$tpl->set("s", "ABSCHICKEN", mi18n("Abschicken"));
$tpl->set("s", "LOESCHEN", mi18n("Löschen"));
$tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/kontaktformular.html");
echo '</form>';
} elseif ($_POST['send'] == 1) {
#Form has been sent
#Check user input
$noerrors = true;
$msg = '';
if ($_POST['Vorname'] == '') {
$noerrors = false;
$msg .= mi18n("Bitte geben Sie Ihren Vornamen ein!")."<br/>";
}
if ($_POST['Nachname'] == '') {
$noerrors = false;
$msg .= mi18n("Bitte geben Sie Ihren Namen ein!")."'<br/>";
}
if ($_POST['EMail'] == '') {
$noerrors = false;
$msg .= mi18n("Bitte geben Sie Ihre EMail-Adresse ein!")."<br/>";
}
if ($_POST['Strasse'] == '') {
$noerrors = false;
$msg .= mi18n("Bitte geben Sie Ihre Straße ein!")."<br/>";
}
if ($_POST['PLZOrt'] == '') {
$noerrors = false;
$msg .= mi18n("Bitte geben Sie Ihre PLZ/Ort ein!")."<br/>";
}
if ($noerrors == false) {
#Errors have been found
echo mi18n("Beim Versenden sind folgende Fehler aufgetreten:")."<br/>";
echo $msg.'<br/>';
echo '<a href="javascript:history.back();">'.mi18n("Zurück").'</a>';
} else {
#No errors, create and send mail
$absender = "CMS_VALUE[0]";
$absendername = "CMS_VALUE[2]";
$empfaenger = "CMS_VALUE[1]";
$betreff = "CMS_VALUE[3]";
$header = 'From: '.$absendername .'<'.$absender.'>';
if (is_array($_POST)) {
foreach ($_POST as $key => $value) {
if ($key != 'send') {
$mail_body .= "$key : $value\n";
}
}
}
#send mail only with PHP-mail()
$sendsuccess = @mail($empfaenger, $betreff, $mail_body, $header);
#Display message after mail is sent
echo mi18n("Ihr Anliegen wurde uns übermittelt. Vielen Dank!")."<br/>";
}
}
?>
Verfasst: Do 18. Jan 2007, 09:49
von mkayi
Juhuuu!
Danke, et geeht!
Allerdings: mysteriös bleibt der Fehler schon irgendwie, oder?

Verfasst: Do 18. Jan 2007, 09:58
von emergence
mysteriös, nein... ein wunder...