fehlverhalten bei kontaktmodul

Gesperrt
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

fehlverhalten bei kontaktmodul

Beitrag von rene04 »

Hallo,

ich habe das Kontaktmodul von Andreas Lindner im Einsatz und wundere mich hier etwas. Wenn ich auf absenden klicke erscheint dort wo eigentlich das modul ist ein antworttext a la: die anfrage wurde an uns übermittelt. diesen text habe ich aber auch so auf einer neuen Seite wo er auch hingehört.

dem code nach zu urteilen soll das selbe modul nach absendn wieder aufgebaut werden, tut es aber offensichtlich nicht :(

Code: Alles auswählen

ausgabe:

<?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");
cInclude('classes', 'contenido/class.client.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="callbackform" id="callbackform" method="post" action="'.$sess->url("front_content.php?idcatart=14").'">';
	echo '<input type="hidden" name="send" value="1">';

	if (!is_object($tpl)) 
        {
		$tpl = new Template;
	}
        $tpl->set("s", "HEADER", mi18n("Wir rufen Sie gerne zurück..."));
	$tpl->set("s", "NAME", mi18n("Name"));
	$tpl->set("s", "TELEFON", mi18n("Telefon"));
	$tpl->set("s", "PFLICHTFELDER", mi18n("Pflichtfelder"));
	$tpl->set("s", "ABSCHICKEN", mi18n("Abschicken..."));

	$tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/callbackformular.html");
	echo '</form>'; 
}
elseif ($_POST['send'] == 1) 
{
        echo 'test';
        #Create contact form
	echo '<form name="callbackform" id="callbackform" method="post" action="'.$sess->url("front_content.php?idcatart=14").'">';
	echo '<input type="hidden" name="send" value="1">';

	if (!is_object($tpl)) 
        {
		$tpl = new Template;
	}
        $tpl->set("s", "HEADER", mi18n("Wir rufen Sie gerne zurück..."));
	$tpl->set("s", "NAME", mi18n("Name"));
	$tpl->set("s", "TELEFON", mi18n("Telefon"));
	$tpl->set("s", "PFLICHTFELDER", mi18n("Pflichtfelder"));
	$tpl->set("s", "ABSCHICKEN", mi18n("Abschicken..."));

	$tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/callbackformular.html");
	echo '</form>';
echo "<br>";   
}
?>
zu begutachten ist das unter www.mobdat.de

hat jemand ne idee wie ich das korrigieren kann?
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

das braucht nicht korrigiert zu werden und ist so durchaus richtig. das modul muss wieder ausgeführt werden, damit es den email-versand ausführen kann. eine weiterleitung ist dann normalerweise - wenn es auch zugegeben besser wäre - nicht möglich, da schon eine ausgabe an den browser erfolgt ist.

was du machten kannst, ist folgendes:

(1) in der front_content.php am anfang ein ob_start() und am ende ein ob_end_flush() einfügen. das schaltet die ausgabenpufferung ein.

(2) im kontaktformularmodul den email-versand belassen, aber anstelle des textes eine weiterleitung vornehmen. dazu musst du zunächst mit ob_end_clean() die ausgabepufferung ausschalten und verwerfen und anschliessend eine weiterleitung mit header("Location: http://...) vornehmen und das script mit exit() beenden.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

Beitrag von rene04 »

hmmm, den text will ich aber auf einer neuen seite anzeigen lassen. halt nur nicht da wo ursprünglich das modul war/ist.

gruesse
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

den text hast du dann, wo immer du willst. nach dem versand des emails erfolgt einfach ein redirect (mit header location). der besucher sieht nach dem versand einfach eine ganz normale seite, die du stylen kannst, ganz wie du möchtest.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Gesperrt