Hallo tinof,
vielen Dank für die Gedankenstütze.
Es funktioniert soweit. Die eingetragenen Werte werden nun nicht mehr gelöscht. Was mir jedoch bei der Testfase aufgefallen ist. =>
Praxis: Nachdem der User vielleicht ein Pflichtfeld vergessen hatte auszufüllen, wird zum zweiten mal das Formular geladen.
Ab diesen Augenblick funktioniert nur noch der Löschbutton für die letzte Eingabe. Nicht alle Felder werden gelöscht.
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 -- Aufbau Kontaktformular
#---------------------------------------------
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", "ADR_NACHNAME_VALUE", $_POST['Nachname']);
$tpl->set("s", "VORNAME", mi18n("Vorname"));
$tpl->set("s", "ADR_VORNAME_VALUE", $_POST['Vorname']);
$tpl->set("s", "FIRMA", mi18n("Firma"));
$tpl->set("s", "ADR_FIRMA_VALUE", $_POST['Firma']);
$tpl->set("s", "STRASSE", mi18n("Strasse/Nr."));
$tpl->set("s", "ADR_STRASSE_VALUE", $_POST['Strasse']);
$tpl->set("s", "PLZORT", mi18n("PLZ/Ort"));
$tpl->set("s", "ADR_PLZORT_VALUE", $_POST['PLZOrt']);
$tpl->set("s", "TELEFON", mi18n("Telefon"));
$tpl->set("s", "ADR_TELEFON_VALUE", $_POST['Telefon']);
$tpl->set("s", "EMAIL", mi18n("eMail"));
$tpl->set("s", "ADR_EMAIL_VALUE", $_POST['EMail']);
$tpl->set("s", "ANLIEGEN", mi18n("Nachricht"));
$tpl->set("s", "ADR_ANLIEGEN_VALUE", $_POST['Anliegen']);
$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 Strasse 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/>';
#Bei Fehleingaben wird das Kontaktformular nochmals angezeigt
#------------------------------------------------------------
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", "ADR_NACHNAME_VALUE", $_POST['Nachname']);
$tpl->set("s", "VORNAME", mi18n("Vorname"));
$tpl->set("s", "ADR_VORNAME_VALUE", $_POST['Vorname']);
$tpl->set("s", "FIRMA", mi18n("Firma"));
$tpl->set("s", "ADR_FIRMA_VALUE", $_POST['Firma']);
$tpl->set("s", "STRASSE", mi18n("Strasse/Nr."));
$tpl->set("s", "ADR_STRASSE_VALUE", $_POST['Strasse']);
$tpl->set("s", "PLZORT", mi18n("PLZ/Ort"));
$tpl->set("s", "ADR_PLZORT_VALUE", $_POST['PLZOrt']);
$tpl->set("s", "TELEFON", mi18n("Telefon"));
$tpl->set("s", "ADR_TELEFON_VALUE", $_POST['Telefon']);
$tpl->set("s", "EMAIL", mi18n("eMail"));
$tpl->set("s", "ADR_EMAIL_VALUE", $_POST['EMail']);
$tpl->set("s", "ANLIEGEN", mi18n("Nachricht"));
$tpl->set("s", "ADR_ANLIEGEN_VALUE", $_POST['Anliegen']);
$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>';
echo '<a href="javascript:history.back();">'.mi18n("Zurück").'</a>';
} else {
#No errors, create and send mail
$mail = new phpmailer;
$mail_body = '<html><head></head><body bgcolor="#ffffff"><table cellspacing="0" cellpadding="2" border="0">';
if (is_array($_POST)) {
foreach ($_POST as $key => $value) {
if ($key != 'send') {
$mail_body .= "<tr><td>$key</td><td>$value</td></tr>";
}
}
}
$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/>";
}
}
?>
Hätte noch eine kleine Bitte:
Habe vor kurzem ein Formular in PHP gebastelt (aber nicht in Contenido).
Vergisst hier der User ein Feld, bleiben alle bisher eingegeben Daten erhalten und die Feldnamen werden über css. dann andersfarbig gestaltet. Wie könnte man die Feldnamen hier im contenido bei Fehlereintritt umsetzten. if abfragen kann man ja leider nicht in normalen modul-templates einfügen.
Das ist der Code den ich bei anderen Formularen (nicht in contenido) verwende.
Code: Alles auswählen
<tr>
<?php
// ***********************************************************
// ABSENDER
// Ist das Eingabefeld ausgefüllt. Feldname = Normale Textformatierung
// $AbsenderFehlt: Feldname wird farblich abgeändert
// ***********************************************************
if(!$AbsenderFehlt)
{ echo "<td width='820'><p class='txt'>Ihren Namen:*</p></td>"; }
else
{ echo "<td width='820'><p class='txt_rot09'>".$AbsenderFehlt.":*</p></td>"; }?>
<td width="210" align="right"><input type="text" class="textfeld" size="40" name="absender" value="<?php echo $_POST['absender'];?>"></td>
</tr>
Gruß Wildstar1600