Code: Alles auswählen
<input src="upload/formulare/icon_anmeldung.gif" type="image" />
x 23
y 36
Die Zahlenwerte ändern sich beliebig.
Wird ein einfacher Sendebutton eingebaut verschwinden diese beiden Werte.
Woran kann dies liegen?
Code: Alles auswählen
<input src="upload/formulare/icon_anmeldung.gif" type="image" />
das ist normal. die zahlenwerte sind die koordinaten auf dem button.andy-man hat geschrieben:Beim Einbau eines graf. SendeButtons
werden im Formular zwei neue Werte im Mail übertragen:Code: Alles auswählen
<input src="upload/formulare/icon_anmeldung.gif" type="image" />
x 23
y 36
Die Zahlenwerte ändern sich beliebig.
Wird ein einfacher Sendebutton eingebaut verschwinden diese beiden Werte.
Woran kann dies liegen?
Da http://forum.contenido.org/viewtopic.ph ... light=tiny gibts die Lösung.andreasb hat geschrieben:Hallo!
Frage: Wenn ich den input buttons eine value zugeben möchte wird dieser ignoriert. Zum. bei mir in der Version 4.6.15 mit tinymce.
Kennt jemand den Grund dafür?
Danke!
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
* Modified : 14-04-2005 by Mathias Rauh <m.rauh@rzwei.de>
18-10-2005 by halousi (jetzt mit datei-anhang)
* - Support for attachments added
************************************************/
class w3form {
var $email, $aufgedroeselt, $form, $formularFeld, $uid;
function w3form() {
}
function setAktion($aktion) { // Action-Adresse in Klasse übernehmen
$this->form['aktion'] = $aktion;
}
// PRIVATE
function sendEmail() {
$uid = md5(uniqid(rand()));
$this->aufdroeseln($this->suppress('sent','Submit'));
$this->generateEmailMessage();
$header .= "MIME-Version: 1.0\n";
$header .= "X-Mailer: PHP\n";
$header .= "From: {$this->email['from']['name']} <{$this->email['from']['email']}>\n";
$header .= "Reply-To: {$this->email['from']['email']}\n";
$header .= "Return-Path: {$this->email['from']['email']}\n";
if ($_FILES['userfile']['name']) {
$datei = fread(fopen($_FILES['userfile']['tmp_name'],"r"),filesize($_FILES['userfile']['tmp_name']));
$datei = chunk_split(base64_encode($datei));
$header .= "Content-Type: multipart/mixed; boundary=$uid\n";
$header .= "--$uid\n";
$header .= "Content-Type: text/plain; charset=iso-8859-1\n";
$header .= "Content-Transfer-Encoding: 8bit\n";
$header .= "\n\n--$uid\n";
$header .= "Content-Type: {$_FILES['userfile']['type']}; name=\"{$_FILES['userfile']['name']}\"\n";
$header .= "Content-Disposition: attachment\n";
$header .= "Content-Transfer-Encoding: base64\n\n";
$header .= "$datei\n";
$header .= "--$uid\n";
mail($this->email['adresses'],$this->email['subject'],$this->email['message'],$header);
}
else {
$header .= "Content-type: text/plain; charset=iso-8859-1\n";
mail($this->email['adresses'],$this->email['subject'],$this->email['message'],$header);
}
}
// 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) > 15 OR strlen($value) > 34) {
$this->email['message'] .= "$key\n$value\n";
} else {
$this->email['message'] .= $key;
$this->email['message'] .= str_repeat(' ',15-strlen($key));
$this->email['message'] .= "$value\n";
}
}
// PRIVATE
function generateEmailMessage() {
if ($this->aufgedroeselt) foreach ($this->aufgedroeselt as $key => $value) {
$this->add2Message($key,$value);
} // end if
}
// 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 = split('###',$formular);
for ($i=1;$i<count($felder);$i=$i+2) {
$attributte = split(';',trim($felder[$i]));
foreach ($attributte as $attribut) {
$namewert = 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="'.$this->form['aktion'].'" method="POST" enctype="multipart/form-data">'."\n";
echo '<input type="hidden" name="sent" value="true" />';
$formular = $this->form['form'];
$formulardaten = $this->formularInterpretation($formular);
$formular = 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 'file':
if (!empty($attribute['size'])) $parameter .= " size=\"{$attribute['size']}\"";
echo "<input type=\"file\" $parameter class=\"standard\" $style />";
break;
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']}"];
echo "<input type=\"text\" $parameter value=\"$value\" class=\"standard\" $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\" class=\"standard\" $style>$value</textarea>";
break;
case 'select':
echo "<select $parameter class=\"standard\" $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\" class=\"formcheckbox\" />attrval=";
echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\" class=\"formcheckbox\" />attrval=";
} else {
echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\" class=\"formcheckbox\" />";
}
} else {
if (!empty($attribute['selected']) && $attribute['selected'] == 'true') {
echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\" checked=\"checked\" class=\"formcheckbox\" />attrsel=";
} else {
echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\" class=\"formcheckbox\" />";
}
}
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;
}
if ($sent && !$this->formularFeldKorrekt($attribute)) echo "<span style=\"color:{$this->form['colorError']};\"> Bitte ausfüllen.</span>";
}
// 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 write2file($path, $data, $fopen_mode) {
$file_access_ok = true;
$file_open = false;
clearstatcache();
// ist Datei beschreibbar?
if (file_exists($path)) {
if (!is_writable($path)) {
$result = 'file_not_writable';
$file_access_ok = false;
}
}
// wenn Datei existiert und beschreibbar ist, öffnen und Ergebnis des Öffnens überprüfen,
// sonst versuchen, die Datei anzulegen und Erfolg dieses Vorgangs ebenfalls prüfen
if ($file_access_ok and (!$file_handle = @fopen($path, $fopen_mode))) {
$result = 'cannot_open_file';
$file_access_ok = false;
}
// Daten in die Datei schreiben und Schreibvorgang überprüfen
if ($file_access_ok) {
if (!fwrite($file_handle, $data) and ($data != '')) {
$result = 'cannot_write_to_file';
$file_access_ok = false;
} else {
$file_open = true;
}
if ($data == '') {
$result = 'ok_but_no_data';
}
}
if ($file_access_ok) {
$result = 'ok';
}
if ($file_open) {
fclose($file_handle);
}
return ($result);
}
// PRIVATE
function write2LogFile() {
$logfile_path = "logs/".$_POST['Name'].".txt";
$fopen_mode = 'ab';
$this->logEntry = '';
if ($this->aufgedroeselt) {
$i = 0;
foreach ($this->aufgedroeselt as $value) {
$i++;
if (1 != $i) {
$this->logEntry .= '; ';
}
$this->logEntry .= $value;
}
$this->logEntry .= CCS_LF;
}
$status = $this->write2file($logfile_path, $this->logEntry, $fopen_mode);
if ('ok' != substr($status, 0, 2)) {
// Fehler beim Schreiben aufgetreten!
}
}
// PRIVATE
function success() {
$this->sendEmail();
$this->write2LogFile();
if (false !== strpos($this->form['answer'], '###sent_data###')) {
if ($this->form['showData']) {
$this->prepareConfirmationDataTable();
$this->form['answer'] = str_replace('###sent_data###', $this->confirmationDataTable, $this->form['answer']);
} else {
$this->form['answer'] = str_replace('###sent_data###', '', $this->form['answer']);
}
}
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-z0-9-]*$",$_POST["{$feld['name']}"])) return false;
//if (!empty($feld['valid']) && $feld['valid'] == 'textmitumbruch' && !eregi("^[ \n\r.,;!?()öäüéàèâêîça-z0-9-]*$",$_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 "<span class=\"Ueberschrift\">Formularkonfiguration</span>";
echo "<span class=\"Normal\">Hier ist das Formular sowie der Text einzugeben, der zusammen mit dem Formular ausgegeben werden soll:</span>";
echo "CMS_HTML[0]";
} else {
$aktion = $auth->url(); // Action-Adresse ist URL
$formular = new w3form();
$formular->setAktion("$aktion"); // Action-Adresse an Klasse übergeben
$formular->addEmailAdress("CMS_VALUE[0]");
$formular->setEmailSubject("CMS_VALUE[1]");
//$formular->setEmailFrom("CMS_VALUE[2]","CMS_VALUE[3]");
$formular->setEmailFrom($_POST['E-Mail'],"\"".$_POST['Name'].", ".$_POST['Vorname']."\"");
$formular->setBackgroundError("CMS_VALUE[4]");
$formular->setForm("CMS_HTML[0]");
$antwort = "<span class=\"Normal\">Vielen Dank für Ihre Anfrage, ".$_POST['Anrede']." ".$_POST['Name'].".<br />\nWir haben Ihre Nachricht erhalten und werden sie umgehend bearbeiten.<br><br>";
$formular->setAnswer("$antwort");
$formular->process();
}
?>
Das ist dort erklärt:Luesch1 hat geschrieben:Weiß jemdand wie die Erweiterung mit den vCards funktioniert. Muss man an dem Formular etwas ändern?
Der Code ist das eine, aber man muss für die einzelnen Felder natürlich angeben, was diese für die vCard bedeuten. Das wird in dem Post auch beschrieben (siehe 2. in der Beschreibung).Luesch1 hat geschrieben:Den Code habe ich auch genommen. Funktioniert aber nicht. Wieso?
Code: Alles auswählen
###name:vorname; type:text; valid:text; size:15; vcard:vorname; mandatory:true###
Luesch1 hat geschrieben:Noch ne Frage zum Formular.
Was muss hier
if (!empty($feld['valid']) && $feld['valid'] == 'text' && !eregi("^[ .,;!?()öäüéàèâêîça-z0-9-]*$",$_POST["{$feld['name']}"])) return false;
ändern, damit man auch ein "ß" schreiben kann.