
V 4.6.15: Probleme mit Kontaktmodul
klar kann mandragon hat geschrieben: Kann man mir da helfen?

ich hab das Modul mal ein wenig modifiziert, sodaß es direkt den PHP-mail()-Befehl verwendet - ohne Umweg über die phpmailer-class
Ist zwar sehr simpel gehalten, aber es funktioniert

Input:
Code: Alles auswählen
?><?php
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : Simple Contact form - PHP-mail() only
* Author(s) : Andreas Dunstheimer
* Based On : "Contact Form" by Andreas Lindner
* Copyright : Contenido - four for business
* Created : 17.11.2006
************************************************/
?>
<table border="0">
<tr>
<td><?php echo mi18n("Absender EMail");?></td>
<td><input type="text" name="<?php echo "CMS_VAR[0]";?>" value="<?php echo "CMS_VALUE[0]"; ?>"></td>
</tr>
<tr>
<td><?php echo mi18n("Absender Name");?></td>
<td><input type="text" name="<?php echo "CMS_VAR[2]";?>" value="<?php echo "CMS_VALUE[2]"; ?>"></td>
</tr>
<tr>
<td><?php echo mi18n("Empfänger EMail");?></td>
<td><input type="text" name="<?php echo "CMS_VAR[1]";?>" value="<?php echo "CMS_VALUE[1]"; ?>"></td>
</tr>
<tr>
<td><?php echo mi18n("Betreff");?></td>
<td><input type="text" name="<?php echo "CMS_VAR[3]";?>" value="<?php echo "CMS_VALUE[3]"; ?>"></td>
</tr>
</table>
<?php
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Simple Contact form - PHP-mail() only
* Author(s) : Andreas Dunstheimer
* Based On : "Contact Form" by Andreas Lindner
* Copyright : Contenido - four for business
* Created : 17.11.2006
************************************************/
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['Anliegen'] == '') {
$noerrors = false;
$msg .= mi18n("Bitte teilen Sie uns Ihr Anliegen mit!")."<br/>";
}
if ($noerrors == false) {
#Errors have been found
echo "<strong>";
echo mi18n("Beim Versenden sind folgende Fehler aufgetreten:")."</strong><br/> <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
if ($sendsuccess) {
echo mi18n("Ihr Anliegen wurde uns übermittelt. Vielen Dank!");
} else {
echo mi18n("Fehler beim Versenden der Email. Bitte versuchen Sie es noch einmal!");
echo '<br/> <br/><a href="javascript:history.back();">'.mi18n("Zurück").'</a>';
}
}
}
?>
Code: Alles auswählen
<table cellspacing="5" cellpadding="10" border="0">
<tr><td colspan="2" align="center"><font face="verdana,geneva" size="2" color="#ff0000"><strong>* = {PFLICHTFELDER}</strong></font></td></tr>
<tr>
<td><font face="verdana,geneva" size="2">{ANREDE}</td>
<td valign="top">
<select name="Anrede">
<option value="{ANREDE_OPTION1}" selected>{ANREDE_OPTION1}</option>
<option value="{ANREDE_OPTION2}">{ANREDE_OPTION2}</option>
</select>
</td>
</tr>
<tr><td><font face="verdana,geneva" size="2">{VORNAME}*</td><td><input type="text" name="Vorname" id="Vorname" maxlength="100" style="width:240px;"/></td></tr>
<tr><td><font face="verdana,geneva" size="2">{NACHNAME}*</td><td><input type="text" name="Nachname" id="Nachname" maxlength="100" style="width:240px;"/></td></tr>
<tr><td><font face="verdana,geneva" size="2">{STRASSE}</td><td><input type="text" name="Strasse" id="Strasse" maxlength="100" style="width:240px;"/></td></tr>
<tr><td><font face="verdana,geneva" size="2">{PLZORT}</td><td><input type="text" name="PLZOrt" id="PLZOrt" maxlength="100" style="width:240px;"/></td></tr>
<tr><td><font face="verdana,geneva" size="2">{TELEFON}</td><td><input type="text" name="Telefon" id="Telefon" maxlength="100" style="width:240px;"/></td></tr>
<tr><td><font face="verdana,geneva" size="2">{EMAIL}*</td><td><input type="text" name="EMail" id="EMail" maxlength="100" style="width:240px;"/></td></tr>
<tr><td colspan="3"> </td></tr>
<tr><td valign="top"><font face="verdana,geneva" size="2">{ANLIEGEN}*</td><td><textarea name="Anliegen" id="Anliegen" style="width:240px;height:170px;font-family:Verdana,Tahoma,Arial,Helvetica,Sans-serif,sans-serif;font-size:11px;"></textarea></td></tr>
<tr><td colspan="2"> </td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="{ABSCHICKEN}"/> <input type="reset" value="{LOESCHEN}"/></td></tr>
</table>
Ich hoffe, das hilft erstmal weiter (muss sicherlich noch an der ein oder anderen Stelle ein wenig angepasst werden)

selbes Problem
Hallo, ich stehe nun vor dem selben Problem. Laut Provider wird eine Email versandt, zumindest versucht der Apache zu senden.
Scheinbar wird aber der Header nicht oder nur teilweise mitgeschickt, wenn er überhaupt richtig erstellt wird.
Wenn ich in der Bestätigungsseite $mail->to ausgeben lasse ist das mehrdimensionale Array leer. Auch weis ich nicht wie
$mail->From = "CMS_VALUE[0]";
arbeitet. CMS_VALUE[0] ist ja keine Variable, oder doch?
Auf die Konfiguration (safemode) habe ich leider keinen Einfluss.
Bin für jeden Tip dankbar!
mfG, Pusche
Scheinbar wird aber der Header nicht oder nur teilweise mitgeschickt, wenn er überhaupt richtig erstellt wird.
Wenn ich in der Bestätigungsseite $mail->to ausgeben lasse ist das mehrdimensionale Array leer. Auch weis ich nicht wie
$mail->From = "CMS_VALUE[0]";
arbeitet. CMS_VALUE[0] ist ja keine Variable, oder doch?
Auf die Konfiguration (safemode) habe ich leider keinen Einfluss.
Bin für jeden Tip dankbar!
mfG, Pusche
Re: selbes Problem
pusche.79 hat geschrieben:CMS_VALUE[0] ist ja keine Variable, oder doch?
CMS_VALUE[0] ist ein Variableninhalt !!
Die Variable wird mit CMS_VAR[0] angesprochen.
Siehe Contenido-Handbuch für Administratoren