[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Formular mit Dateiupload
Seite 1 von 1

Formular mit Dateiupload

Verfasst: 26. Aug 2013, 19:21
von fmkp
Hy,

habe gerade eine Redaxo-Website übernommen und kenne mich nicht 100%-ig aus. Aktuell habe ich ein Problem mit einem Formular welches ein Input-Feld vom Type "file" enthält.

Beim Absenden ist die Variable $_FILES jedoch immer leer. Ich wollte daher fragen ob über Redaxo irgendwie $_POST oder $_FILES abgefangen werden.

Das Modul ist ein PHP Modul mit Eingabe:

Code: Alles auswählen

<textarea name="INPUT_PHP" rows="20" cols="106">REX_PHP</textarea>
und Ausgabe:
REX_PHP
Ich verwende Redaxo-Version 4.1.0

Re: Formular mit Dateiupload

Verfasst: 26. Aug 2013, 19:48
von Xong
Hallo und herzlich Willkommen bei Redaxo!

Du solltest evtl. über ein Update bzw. einen Relaunch der Website nachdenken. Aktuell ist nämlich Redaxo 4.5.

Aber um dir zu helfen: Wie sieht denn der Code aus, mit dem du das Formular erstellst und verarbeitest?

Re: Formular mit Dateiupload

Verfasst: 26. Aug 2013, 20:20
von fmkp
Hy und danke für deine rasche Antwort.

Ja das habe ich schon gelesen, ist eine sehr alte Website. Ich kenne mich nicht so gut aus mit Redaxo und möchte nur ein kleines Formular integrieren. Für ein Update müsste ich mal ein bisschen mehr Zeit investieren, da ich mich hier ws erst komplett einlesen müsste.

Der Code im Modul :

Code: Alles auswählen

  <?php

require_once 'xface081.inc.php';

//Deklaration eindeutiger Variablen
  $check = false;
  $checkm = false;
  $RECIPIENT = "fmkpone@gmail.com";
  $FORM = array( '<p class="formRow">',xface_checkbox("St&uuml;ck Motiv Winterlandschaft","","","checkbox"),'</p>'
                ,'<p class="formRow">',xface_checkbox("St&uuml;ck Motiv Kinder","","","checkbox"),'</p>'
                ,'<p class="formRow">',xface_file("St&uuml;ck Motiv eigenes Farbbild Hoch","","","checkbox"),'</p>'
                ,'<p class="formRow">',xface_file("St&uuml;ck Motiv eigenes Farbbild Quer","","","checkbox"),'</p>'
                ,'<p class="formRow">',xface_checkbox("Kehrplan mit drucken","","","checkbox"),'</p>'
                ,'<p class="formRow">',xface_checkbox("Falz erw&uuml;nscht","","","checkbox"),'</p>'
                ,'<p class="formRow">',xface_text("Eindruck Text 4 Zeilen","","","text"),'</p>'
                ,'<p class="formRow">',xface_text("Ihr Name *","","","text"),'</p>'
                ,'<p class="formRow">',xface_text("Ihre E-Mail *","","","text"),'</p>'
                ,'<p class="formRow">',xface_text("Ihre Firma","","","text"),'</p>'
                ,'<p class="formRow">',xface_text("Ihre Adresse *","","","text"),'</p>'
                ,'<p class="formRow">',xface_text("Ihre Telefonnummer *","","","text"),'</p>'
               ,'<div class="actionRow">',xface_submit("submit","","submit"),'<div class="clearer">$nbsp;</div>','</div>');
  
  if (isset($_POST['submit'])){


//Deklaration eingabeabhängiger Variablen   
    $name = "\r\n".'Name des Absenders: '.$_POST['ihr_name_']; 
    $email = "\r\n".'E-Mail des Absenders: '.$_POST['ihre_email_']; 
    $company = "\r\n".'Firma des Absenders: '.$_POST['ihre_firma'];
    $adress = "\r\n".'Adresse des Absenders: '.$_POST['ihre_adresse_'];
    $phone = "\r\n".'Telefonnummer des Absenders: '.$_POST['ihre_telefonnummer_']."\r\n"."\r\n"; 


    $checkboxes  = "\r\n".'Stück Motiv Winterlandschaft: ';  if(isset( $_POST['stuumlck_motiv_winterlandschaft'] )) { $checkboxes .= 'Ja'; }
    $checkboxes .= "\r\n".'Stück Motiv Kinder: ';            if(isset( $_POST['stuumlck_motiv_kinder'] )) { $checkboxes .= 'Ja'; }
    $checkboxes .= "\r\n".'Kehrplan mit drucken: ';          if(isset( $_POST['kehrplan_mit_drucken'] )) { $checkboxes .= 'Ja'; }
    $checkboxes .= "\r\n".'Falz erwünscht: ';           if(isset( $_POST['falz_erwuumlnscht'] )) { $checkboxes .= 'Ja'; }
    $checkboxes .= "\r\n".'Eindruck Text 4 Zeilen: ';        if(isset( $_POST['eindruck_text_4_zeilen'] )) { $checkboxes .= 'Ja'; }
    
    $mime_boundary = "-----=" . md5(uniqid(mt_rand(), 1)); 

    $content = '';
    $anhang = array();

    if(is_array($anhang) AND is_array(current($anhang))) 
          { 
          foreach($anhang AS $dat) 
             { 
             $data = chunk_split(base64_encode($dat['data'])); 
             $content.= "--".$mime_boundary."\r\n"; 
             $content.= "Content-Disposition: attachment;\r\n"; 
             $content.= "\tfilename=\"".$dat['name']."\";\r\n"; 
             $content.= "Content-Length: .".$dat['size'].";\r\n"; 
             $content.= "Content-Type: ".$dat['type']."; name=\"".$dat['name']."\"\r\n"; 
             $content.= "Content-Transfer-Encoding: base64\r\n\r\n"; 
             $content.= $data."\r\n"; 
             } 
          $content .= "--".$mime_boundary."--";  
          } 

    $header = 'MIME-Version: 1.0'."\r\n".
              'Content-type: text/html charset=iso-8859-1'."\r\n".
              "From:".$_POST['ihr_name_']."<".$_POST['ihre_email_'].">";
    
    $subject = 'Rauchfangkehrerkalender';
    $message = $name.$email.$company.$adress.$phone.$checkboxes.$anhang;

  
//Überprüfen der Eingabe
   
    if (!empty($_POST['ihr_name_'])          && 
        !empty($_POST['ihre_email_'])         && 
        !empty($_POST['ihre_telefonnummer_'])&& 
        !empty($_POST['ihre_adresse_']))  
    {$check = true;}
            
    if (preg_match('#^[^\\x00-\\x1f@]+@[^\\x00-\\x1f@]{2,}\.[a-z]{2,}$#i',$_POST['ihre_email_'])) $checkm = true;
    
//Definition Fehlerausgabe
    if ($checkm == false) $OUT = 'Bitte geben Sie eine gültige E-Mail-Adresse ein.';
    if ($check == false) $OUT = 'Bitte füllen sie alle durch "*" gekennzeichneten Pflichtfelder aus.';

//Versenden der Mail erzeugen der Ausgabe  
    if ($check == true && $checkm == true) $checkm = mail($RECIPIENT, $subject, $message, null, '-faltenmarkt@scharmer.at');; 
    if ($checkm == true && $check == true) $OUT = 'Ihre E-Mail wurde erfolgreich versandt.';
  }
// Formular ausgabe
  
  if(isset($OUT)) PRINT $OUT;
  if($checkm == false || $check == false) xface_form("mail",$FORM,"requestForm","standardForm","post","74-Rauchfangkehrer.html");
  
?> 
EDIT:
Habe den Code hier nochmals gepostet: http://pastebin.com/fyJHFZ61

Re: Formular mit Dateiupload

Verfasst: 26. Aug 2013, 20:40
von Xong
Hi,

du greifst da nirgendwo auf hochgeladene Dateien zu.

Evtl. hilft dir ja der DoForm-Formulargenerator: http://klxm.de/produkte/redaxo-do-form/.

Re: Formular mit Dateiupload

Verfasst: 26. Aug 2013, 21:07
von fmkp
Ja ich habe schon ein print_r($_FILES) reingemacht. Aber da kam dann eben auch ein leeres Array.

Re: Formular mit Dateiupload

Verfasst: 29. Aug 2013, 15:59
von Thomas.Skerbis
Achtung!
do form! akzeptiert nur noch die TinyMCE-Versionen die über eine CSS-Klasse aufgerufen werden.
Es sollte aber auch noch unter 4.1.1 laufen. Wenn nicht, bitte mal eine PM an mich. Ich habe sicher noch irgendwo eine ältere Version.