Kontaktformular: mail wird versandt, aber functions unknown?

Gesperrt
mkayi
Beiträge: 77
Registriert: Sa 18. Dez 2004, 22:23
Kontaktdaten:

Kontaktformular: mail wird versandt, aber functions unknown?

Beitrag 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...;-)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

wie lauten die genauen fehlermeldungen ?

...und naja, wie sieht den dein modifiziertes modul nun aus ?
*** make your own tools (wishlist :: thx)
mkayi
Beiträge: 77
Registriert: Sa 18. Dez 2004, 22:23
Kontaktdaten:

Beitrag 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/>";
	}
}
?>
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag 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/>"; 
   } 
} 
?>
*** make your own tools (wishlist :: thx)
mkayi
Beiträge: 77
Registriert: Sa 18. Dez 2004, 22:23
Kontaktdaten:

Beitrag von mkayi »

Juhuuu!

Danke, et geeht!

Allerdings: mysteriös bleibt der Fehler schon irgendwie, oder?



:shock:
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

mysteriös, nein... ein wunder...
*** make your own tools (wishlist :: thx)
Gesperrt