w3c contact form
w3c contact form
hallo zusammen
habe das w3c kontakformular schon bei anderen seiten im einsatz, jedoch gibt es hier nun fehler?!
http://schulefit.ch/cms/front_content.php?idcat=5 so wie ich nun gegoogelt habe liegt das an der php-version, stimmt das?
kann mir jemand sagen, wie man das beheben kann?
vielen dank!
habe das w3c kontakformular schon bei anderen seiten im einsatz, jedoch gibt es hier nun fehler?!
http://schulefit.ch/cms/front_content.php?idcat=5 so wie ich nun gegoogelt habe liegt das an der php-version, stimmt das?
kann mir jemand sagen, wie man das beheben kann?
vielen dank!
Re: w3c contact form
Hallo,
schau mal auf die Fehlermeldung "Function split() is deprecated"
->
http://php.net/manual/de/function.split.php
statt dessen nimmst Du
http://www.php.net/manual/de/function.preg-split.php oder
http://www.php.net/manual/de/function.explode.php
Musst also das Modul an entsprechender Stelle anpassen. Viel Erfolg!
schau mal auf die Fehlermeldung "Function split() is deprecated"
->
http://php.net/manual/de/function.split.php
statt dessen nimmst Du
http://www.php.net/manual/de/function.preg-split.php oder
http://www.php.net/manual/de/function.explode.php
Musst also das Modul an entsprechender Stelle anpassen. Viel Erfolg!
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.
Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)
Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.
Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)
Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
Re: w3c contact form
Danke! Ich versuchs mal
Hat das mit der php version zu tun?
Hat das mit der php version zu tun?
Re: w3c contact form
Öh... Hol Dir mal nen Kaffee und guckst Du nochmal hier http://php.net/manual/de/function.split.php
Gleich neben dem Warnschild findest Du: "Diese Funktion ist seit PHP 5.3.0 DEPRECATED (veraltet). "
Gleich neben dem Warnschild findest Du: "Diese Funktion ist seit PHP 5.3.0 DEPRECATED (veraltet). "
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.
Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)
Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.
Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)
Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
Re: w3c contact form
ein teil habe ich nun (hoffentlich) geschafft... das andere muss ich nun noch auspröbeln...
php ist gar nicht meine welt
danke dir!
Re: w3c contact form
also der eine fehler ist ja jetzt weg... aber der andere ist noch...
habe ein paar & weggelöscht, dann war der fehler auch weg nur sendet das formular nicht...
kannst du evtl. wenn du kurz zeit hättest mal rein schauen? danke dir!
habe ein paar & weggelöscht, dann war der fehler auch weg nur sendet das formular nicht...
kannst du evtl. wenn du kurz zeit hättest mal rein schauen? danke dir!
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : w3concepts.form.v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 20-08-2004
* Modified : 20-08-2004
************************************************/
class w3form {
var $email, $aufgedroeselt, $form, $formularFeld;
function w3form() {
}
// PRIVATE
function sendEmail() {
$this->aufdroeseln($this->suppress('sent'));
$this->generateEmailMessage();
# Spider IT Deutschland - New Mailer -->
cInclude("classes", "class.phpmailer.php");
$mail = new phpmailer;
$mail->Host = "localhost";
$mail->IsHTML(false);
#Get mailer from settings
switch (strtolower("CMS_VALUE[5]")) {
case "smtp" :
$mail->IsSMTP();
$host = "CMS_VALUE[6]";
$user = "CMS_VALUE[7]";
$password = "CMS_VALUE[8]";
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->FromName = $this->email['from']['name'];
$mail->From = $this->email['from']['email'];
$mail->ReplyTo = $this->email['from']['email'];
$mail->AddAddress($this->email['adresses']);
$mail->Subject = $this->email['subject'];
$mail->Body = $this->email['message'];
$mail->WordWrap = 50;
$mail->Send();
#mail($this->email['adresses'],$this->email['subject'],$this->email['message'],"From: {$this->email['from']['name']} <{$this->email['from']['email']}>\nReply-To: {$this->email['from']['email']}\nX-Mailer: PHP/" . phpversion());
# Spider IT Deutschland - New Mailer <--
}
// PRIVATE
function aufdroeseln($aufzudroeseln,$prefix = '') {
foreach ($aufzudroeseln as $key => $value) {
if (is_array($value)) {
$this->aufdroeseln($value,$key." ");
} else {
$this->aufgedroeselt["{$prefix}{$key}"] = $value;
}
}
}
// PRIVATE
function add2Message($key,$value) {
if (strlen($key) > 25 OR strlen($value) > 54) {
$this->email['message'] .= "$key\n$value\n";
} else {
$this->email['message'] .= $key;
$this->email['message'] .= str_repeat(' ',25-strlen($key));
$this->email['message'] .= "$value\n";
}
}
// PRIVATE
function generateEmailMessage() {
if ($this->aufgedroeselt) foreach ($this->aufgedroeselt as $key => $value) {
$this->add2Message($key,$value);
}
}
// PRIVATE
function suppress() {
$suppress = func_get_args();
foreach ($_POST as $key => $value) {
if (array_search($key,$suppress) === false) $fields[$key] = $value;
}
return $fields;
}
// PUBLIC
function addEmailAdress($email) {
if (empty($this->emailAdresses)) {
$this->email['adresses'] .= "$email";
} else {
$this->email['adresses'] .= ", $email";
}
}
// PUBLIC
function setEmailSubject($subject) {
$this->email['subject'] = $subject;
}
// PUBLIC
function setEmailFrom($email,$name) {
$this->email['from']['email'] = $email;
$this->email['from']['name'] = $name;
}
// PUBLIC
function setForm($form) {
$this->form['form'] = $form;
}
// PUBLIC
function setAnswer($answer) {
$this->form['answer'] = $answer;
}
// PUBLIC
function setBackgroundError($color) {
$this->form['colorError'] = $color;
}
// PRIVATE
function formularInterpretation(&$formular) {
$felder = preg_split('/###/',$formular);
for ($i=1;$i<count($felder);$i=$i+2) {
$attributte = preg_split('/;/',trim($felder[$i]));
foreach ($attributte as $attribut) {
$namewert = preg_split('/:/',trim($attribut));
if ($namewert[0] != 'option' && $namewert[0] != 'optionvalue') {
$feld["{$felder[$i]}"]["{$namewert[0]}"] = $namewert[1];
} else {
$feld["{$felder[$i]}"]["{$namewert[0]}"][] = $namewert[1];
}
}
}
return $feld;
}
// PRIVATE
function formularAusgabe($sent = false) {
echo '<form action="/cms/front_content.php?idcatart=7" method="POST">';
echo '<input type="hidden" name="sent" value="true" />';
$formular = $this->form['form'];
$formulardaten = $this->formularInterpretation(&$formular);
$formular = preg_split('/###/',$formular);
foreach ($formular as $formularteil) {
if (!empty($formulardaten["{$formularteil}"])) {
$this->formularFeld($formulardaten["{$formularteil}"],$sent);
} else {
echo $formularteil;
}
}
echo '</form>';
}
// PRIVATE
function formularFeld($attribute,$sent) {
$parameter = "name=\"{$attribute['name']}\"";
if ($sent && !$this->formularFeldKorrekt(&$attribute)) $style ="style=\"background-color:{$this->form['colorError']};\"";
switch ($attribute['type']) {
case 'select':
case 'password':
case 'text':
if (!empty($attribute['size'])) $parameter .= " size=\"{$attribute['size']}\"";
break;
}
switch ($attribute['type']) {
case 'textarea':
case 'text':
if (!empty($attribute['size'])) $parameter .= " size=\"{$attribute['size']}\"";
if (!empty($attribute['value'])) $value = $attribute['value'];
if (!empty($_POST["{$attribute['name']}"])) $value = $_POST["{$attribute['name']}"];
break;
}
switch ($attribute['type']) {
case 'text':
echo "<input type=\"text\" $parameter value=\"$value\" $style />";
break;
case 'password':
echo "<input type=\"password\" $parameter value=\"$value\" $style />";
break;
case 'textarea':
echo "<textarea name=\"{$attribute['name']}\" cols=\"";
echo (empty($attribute['cols']))?('20'):($attribute['cols']);
echo "\" rows=\"";
echo (empty($attribute['rows']))?('2'):($attribute['rows']);
echo "\" wrap=\"virtual\" $style>$value</textarea>";
break;
case 'select':
echo "<select $parameter $style>";
for ($i=0;$i<count($attribute['option']);$i++) {
if (!empty($attribute['optionvalue'][$i])) {
if (!empty($_POST["{$attribute['name']}"]) && $_POST["{$attribute['name']}"] == $attribute['optionvalue'][$i]) {
echo "<option value=\"{$attribute['optionvalue'][$i]}\" selected=\"selected\">{$attribute['option'][$i]}</option>\n";
} else {
if (empty($_POST["{$attribute['name']}"]) && !empty($attribute['optionvalue'][$i]) && $attribute['optionvalue'][$i] == $attribute['value']) {
echo "<option value=\"{$attribute['optionvalue'][$i]}\" selected=\"selected\">{$attribute['option'][$i]}</option>\n";
} else {
echo "<option value=\"{$attribute['optionvalue'][$i]}\">{$attribute['option'][$i]}</option>\n";
}
}
} else {
if (!empty($_POST["{$attribute['name']}"]) && $_POST["{$attribute['name']}"] == $attribute['option'][$i]) {
echo "<option selected=\"selected\">{$attribute['option'][$i]}</option>\n";
} else {
if (empty($_POST["{$attribute['name']}"]) && $attribute['option'][$i] == $attribute['value']) {
echo "<option selected=\"selected\">{$attribute['option'][$i]}</option>\n";
} else {
echo "<option>{$attribute['option'][$i]}</option>\n";
}
}
}
}
echo "</select>";
break;
case 'checkbox':
$formularbezeichner = preg_split('/[\[|\]]/',$attribute['name']);
if ($sent) {
if ($_POST["{$formularbezeichner[0]}"]["{$formularbezeichner[1]}"] == $attribute['value']) {
echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\" checked=\"checked\"/>";
} else {
echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\"/>";
}
} else {
if (!empty($attribute['selected']) && $attribute['selected'] == 'true') {
echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\" checked=\"checked\"/>";
} else {
echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\"/>";
}
}
break;
case 'radio':
if (!empty($_POST["{$attribute['name']}"])) {
if ($_POST["{$attribute['name']}"] == $attribute['value']) {
echo "<input type=\"radio\" $parameter value=\"{$attribute['value']}\" checked=\"checked\"/>";
} else {
echo "<input type=\"radio\" $parameter value=\"{$attribute['value']}\" />";
}
} else {
if (!empty($attribute['selected']) && $attribute['selected'] == 'true') {
echo "<input type=\"radio\" $parameter value=\"{$attribute['value']}\" checked=\"checked\"/>";
} else {
echo "<input type=\"radio\" $parameter value=\"{$attribute['value']}\"/>";
}
}
break;
}
}
// PRIVATE
function formularVollstaendig() {
$formular = $this->form['form'];
$felder = $this->formularInterpretation(&$formular);
foreach ($felder as $feld) {
if (!$this->formularFeldKorrekt(&$feld)) return false;
}
return true;
}
// PRIVATE
function success() {
$this->sendEmail();
echo $this->form['answer'];
}
// PRIVATE
function formularFeldKorrekt(&$feld) {
// prüfung, ob pflichtfeld vorhanden
if (!empty($feld['mandatory']) && $feld['mandatory'] == 'true' && empty($_POST["{$feld['name']}"])) return false;
// wenn das formularfeld kein pflichtfeld und nicht vorhanden ist, true zurück geben
if (empty($_POST["{$feld['name']}"])) return true;
// regular expression prüfungen
if (!empty($feld['valid']) && $feld['valid'] == 'simpletext' && !eregi("^[öäüéàèâêîça -z-]*$",$_POST["{$feld['name']}"])) return false;
if (!empty($feld['valid']) && $feld['valid'] == 'text' && !eregi("^[ .,;!?()öäüéàèâêîça -z-]*$",$_POST["{$feld['name']}"])) return false;
if (!empty($feld['valid']) && $feld['valid'] == 'integer' && !eregi("^[0-9]*$",$_POST["{$feld['name']}"])) return false;
if (!empty($feld['valid']) && $feld['valid'] == 'float' && !eregi("^[0-9]*[.]{0,1}[0-9]*$",$_POST["{$feld['name']}"])) return false;
if (!empty($feld['valid']) && $feld['valid'] == 'date' && !eregi("^[0-9]{1,2}.[0-9]{1,2}.[0-9]{2}$",$_POST["{$feld['name']}"])) return false;
if (!empty($feld['valid']) && $feld['valid'] == 'email' && !eregi("^[öäüéàèâêîç_a-z0-9-]+(\.[öäüéàèâêîç_a-z0-9-]+)*@[öäüéàèâêîça-z0-9-]+(\.[öäüéàèâêîça-z0-9-]+)*$",$_POST["{$feld['name']}"])) return false;
// grössenbereich bei integer und float prüfen
if (!empty($feld['minvalue']) && $_POST["{$feld['name']}"] < $feld['minvalue']) return false;
if (!empty($feld['maxvalue']) && $_POST["{$feld['name']}"] > $feld['maxvalue']) return false;
// längenbereich bei allen typen prüfen
if (!empty($feld['minlength']) && strlen($_POST["{$feld['name']}"]) < $feld['minlength']) return false;
if (!empty($feld['maxlength']) && strlen($_POST["{$feld['name']}"]) > $feld['maxlength']) return false;
return true;
}
//PUBLIC
function process() {
if (!isset($_POST['sent'])) {
$this->formularAusgabe();
} elseif ($this->formularVollstaendig()) {
$this->success();
} else {
$this->formularAusgabe(true);
}
}
}
if ($edit) {
echo "<h1>Formularkonfiguration</h1>";
echo "<p>Hier ist das Formular sowie der Text einzugeben, der zusammen mit dem Formular ausgegeben werden soll:</p>";
echo "CMS_HTML[0]";
echo "<p>Hier ist die Ausgabe einzugeben, die erscheint, wenn das Formular erfolgreich prozessiert worden ist:</p>";
echo "CMS_HTML[1]";
} else {
$formular = new w3form();
$formular->addEmailAdress("CMS_VALUE[0]");
$formular->setEmailSubject("CMS_VALUE[1]");
$formular->setEmailFrom("CMS_VALUE[2]","CMS_VALUE[3]");
$formular->setBackgroundError("CMS_VALUE[4]");
$formular->setForm("CMS_HTML[0]");
$formular->setAnswer("CMS_HTML[1]");
$formular->process();
}
?>
Zuletzt geändert von walsi24 am Fr 17. Aug 2012, 10:30, insgesamt 1-mal geändert.
Re: w3c contact form
Hallo walsi24,
für das Einfügen von Code in einem Post ist der [ code ]-Button vorgesehen. Du hast hier den [ URL ]-Button für eine Webadresse genommen...
Schau mal hier: http://faq.contenido.org/content/16/265 ... cated.html
Und dann hier: http://www.php.net/manual/de/language.r ... s.pass.php
Eine Direktlösung kann ich Dir nicht servieren, aber eine Vermutung: In dem Artikel der contenido-faq gibt es den Hinweis "Man muss nur alle Parameterübergaben per Referenz im Modulquelltext entfernen." Bei php.net hast Du dann "Zu beachten ist, dass kein Referenz-Zeichen beim Funktionsaufruf steht, nur in der Funktionsdefinition." Aus der Kombi von beidem würde ich jetzt draus schließen, das Referenzzeichen in der Funktionsdefinition muss raus - also das &.
Findet man in Deinem Code zwei Mal:
Evtl. ist das schon mal ein Ansatz, auch wenn die Fehlermeldung bei Dir vier Mal vorkommt. Kann natürlich sein, dass das Modul dann nicht mehr funktioniert - das Referenzieren hatte ja seinen Sinn - und Du da noch so einiges anderes umschreiben müsstest. Kann Dir da aber ab hier nicht mehr weiterhelfen da ich da auch nichts weiteres mehr weiß.
Ansonsten liest das hier vielleicht auch - der zur Zeit urlaubende - Oldperl, der den FAQ-Eintrag geschrieben hat und kann noch einen Hinweis geben. Oder du greifst auf ein anderes Kontaktformular zurück, was noch nicht so viele Jahre auf dem Buckel hat.
Viel Erfolg!
für das Einfügen von Code in einem Post ist der [ code ]-Button vorgesehen. Du hast hier den [ URL ]-Button für eine Webadresse genommen...
Schau mal hier: http://faq.contenido.org/content/16/265 ... cated.html
Und dann hier: http://www.php.net/manual/de/language.r ... s.pass.php
Eine Direktlösung kann ich Dir nicht servieren, aber eine Vermutung: In dem Artikel der contenido-faq gibt es den Hinweis "Man muss nur alle Parameterübergaben per Referenz im Modulquelltext entfernen." Bei php.net hast Du dann "Zu beachten ist, dass kein Referenz-Zeichen beim Funktionsaufruf steht, nur in der Funktionsdefinition." Aus der Kombi von beidem würde ich jetzt draus schließen, das Referenzzeichen in der Funktionsdefinition muss raus - also das &.
Findet man in Deinem Code zwei Mal:
Code: Alles auswählen
...
function formularInterpretation(&$formular)
...
function formularFeldKorrekt(&$feld)
...
Ansonsten liest das hier vielleicht auch - der zur Zeit urlaubende - Oldperl, der den FAQ-Eintrag geschrieben hat und kann noch einen Hinweis geben. Oder du greifst auf ein anderes Kontaktformular zurück, was noch nicht so viele Jahre auf dem Buckel hat.
Viel Erfolg!
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.
Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)
Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.
Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)
Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
Re: w3c contact form
Hallo
Das ist wenn man 7 sachen miteinander machen will
Frauen können das wohl wirklich besser
Also ich hab das versucht und bin sogar soweit gekommen, dass keine fehlermeldung mehr angezeigt wird aber das formular war dann im ar***
Ich suche jetzt ein neues kontakformular aber irgendwie überzeugen die im forum noch nicht ganz…
Danke dir aber vielmals!!!
Das ist wenn man 7 sachen miteinander machen will
Frauen können das wohl wirklich besser
Also ich hab das versucht und bin sogar soweit gekommen, dass keine fehlermeldung mehr angezeigt wird aber das formular war dann im ar***
Ich suche jetzt ein neues kontakformular aber irgendwie überzeugen die im forum noch nicht ganz…
Danke dir aber vielmals!!!
Re: w3c contact form
Du hast Post...
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.
Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)
Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.
Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)
Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
Re: w3c contact form
Frauen können zwei Sachen gleichzeitig machen, Männer schaffen mehrwalsi24 hat geschrieben:Das ist wenn man 7 sachen miteinander machen will
Frauen können das wohl wirklich besser
Gruß
René
Re: w3c contact form
SUPER! Vielen Dank McHubi!