Seite 1 von 1
w3c contact form
Verfasst: Mi 15. Aug 2012, 17:51
von walsi24
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!
Re: w3c contact form
Verfasst: Do 16. Aug 2012, 07:53
von McHubi
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!

Re: w3c contact form
Verfasst: Do 16. Aug 2012, 08:07
von walsi24
Danke! Ich versuchs mal
Hat das mit der php version zu tun?
Re: w3c contact form
Verfasst: Do 16. Aug 2012, 08:30
von McHubi
Ö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). "

Re: w3c contact form
Verfasst: Do 16. Aug 2012, 21:08
von walsi24
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
Verfasst: Do 16. Aug 2012, 21:55
von walsi24
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!
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();
}
?>
Re: w3c contact form
Verfasst: Fr 17. Aug 2012, 07:45
von McHubi
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:
Code: Alles auswählen
...
function formularInterpretation(&$formular)
...
function formularFeldKorrekt(&$feld)
...
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!

Re: w3c contact form
Verfasst: Fr 17. Aug 2012, 12:48
von walsi24
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!!!
Re: w3c contact form
Verfasst: Fr 17. Aug 2012, 13:24
von McHubi
Du hast Post...

Re: w3c contact form
Verfasst: Fr 17. Aug 2012, 13:56
von Spider IT
walsi24 hat geschrieben:Das ist wenn man 7 sachen miteinander machen will

Frauen können das wohl wirklich besser

Frauen können zwei Sachen gleichzeitig machen, Männer schaffen mehr
Gruß
René
Re: w3c contact form
Verfasst: Fr 17. Aug 2012, 18:20
von walsi24
SUPER! Vielen Dank McHubi!