Formular erzeugen Probleme seit PHP 5

Wie verwendet man Module oder Aktion und passt diese an.

Formular erzeugen Probleme seit PHP 5

Beitragvon sek » 25. Mai 2009, 00:30

Hallo zusammen,

ich benutze das "Formular erzeugen"-Modul aus der Demo schon seit einiger Zeit.
Seitdem der Provider aber den Server auf PHP Version 5.1.4 umgestellt hat läuft das Formular nicht mehr.
Kein anzeigen der nicht ausgefüllten Pflichtfelder, kein Danksagungstext und die Mail geht nicht raus bzw. kommt nicht an.

Was kann ich tun? Was muss ich wo umstellen/umschreiben?
Bin phpnoob, bitte foolproof erklären.


Eingabe
Code: Alles auswählen
Email geht an:<br />
<input type="text" name="VALUE[1]" value="REX_VALUE[1]" class="inp100" /><br />
<br />
Absendername:<br />
<input type="text" name="VALUE[8]" value="REX_VALUE[8]" class="inp100" /><br />
<br />
Absender-Email:<br />
<input type="text" name="VALUE[2]" value="REX_VALUE[2]" class="inp100" /><br />
<br />
Subject:<br />
<input type="text" name="VALUE[4]" value="REX_VALUE[4]" class="inp100" /><br />
<br />
Mailbody Prefix:<br />
<textarea name="VALUE[5]" style="width:100%;height:100px;">REX_VALUE[5]</textarea><br />
<br />
Submitbutton Bezeichnung:<br />
<input type="text" name="VALUE[7]" value="REX_VALUE[7]" class="inp100" /><br />
<br />
Danksagung:<br />
<textarea name="VALUE[6]" style="width:100%;height:100px;">REX_VALUE[6]</textarea><br />
<br />

Formularbeschreibung:<br />
<textarea name="VALUE[3]" style="width:100%;height:180px;">REX_VALUE[3]</textarea><br />
<br />
typ|bezeichnung|pflicht|default|value<br /><br />

<strong>Hinweis</strong>
<table class="warning">
<tr>
   <td style="vertical-align:top;">Typen</td>
   <td>
      text<br />
      textarea<br />
      select -> redaxo;doku;forum<br />
      checkbox<br />
      headline</td>
</tr>
<tr>
   <td style="vertical-align:top;">Bezeichnung</td>
   <td>Feldbezeichnung</td>
</tr>
<tr>
   <td style="vertical-align:top;">Pflicht</td>
   <td>1 sonst 0 oder leer</td>
</tr>
<tr>
   <td style="vertical-align:top;">Default</td>
   <td>Wert der bereits erscheinen wird.<br />
   Beispiel<br />
   Eingabe:<br />
   textarea|Adresse:|1| Geben Sie hier bitte Ihre Adresse an! |<br />
   <br />
   Ausgabe:<br />
   &lt;textarea&gt; Geben Sie hier bitte Ihre SpaßAdresse an! &lt;/textarea&gt;
   </td>
</tr>
<tr>
   <td style="vertical-align:top;">Value</td>
   <td></td>
</tr>
</table>



Ausgabe
Code: Alles auswählen
<?php
$rex_form_data = <<<End
REX_HTML_VALUE[3]
End;

$mailbody = <<<End
REX_HTML_VALUE[5]
End;

$formname = "";
$submitlabel = "REX_VALUE[7]";
$style = ' style="color:#f00;"';


$formoutput = array();
$warning = array();
$form_elements = array();
$form_elements = explode("\n", $rex_form_data);

for($i=0;$i<count($form_elements);$i++){

   $element = explode("|", $form_elements[$i]);
   $AFE[$i] = $element;

   switch($element[0]){

      case "headline":
         $formoutput[] = '<p>'.$element[1].'</p>';
      
      break;

      case "text":
         if($FORM[$formname]["el_".$i] == "" && !$FORM[$formname][$formname."send"]){
            $FORM[$formname]["el_".$i] = trim($element[3]);
         }
      
         if($element[2] == 1 && (trim($FORM[$formname]["el_".$i]) == "" || trim($FORM[$formname]["el_".$i]) == trim($element[3])) && $FORM[$formname][$formname."send"] == 1){
            $warning["el_".$i] = $style;
         }
         
         $formoutput[] = '
            <label class="text" '.$warning["el_".$i].' for="el_'.$i.'" >'.$element[1].'</label>
            <input type="text" class="text" name="FORM['.$formname.'][el_'.$i.']" id="el_'.$i.'" value="'.htmlentities(stripslashes($FORM[$formname]["el_".$i])).'" /><br />
            ';
      break;
      
      case "textarea":
         if($FORM[$formname]["el_".$i] == "" && !$FORM[$formname][$formname."send"]){
            $FORM[$formname]["el_".$i] = $element[3];
         }
      
         if($element[2] == 1 && (trim($FORM[$formname]["el_".$i]) == "" || trim($FORM[$formname]["el_".$i]) == trim($element[3])) && $FORM[$formname][$formname."send"] == 1){
            $warning["el_".$i] = $style;
         }
      
         $formoutput[] = '
            <label class="textarea" '.$warning["el_".$i].' for="el_'.$i.'" >'.$element[1].'</label>
            <textarea class="textarea" name="FORM['.$formname.'][el_'.$i.']" id="el_'.$i.'" cols="80" rows="10">'.htmlentities(stripslashes($FORM[$formname]["el_".$i])).'</textarea><br />
            ';
      break;
      
      case "headline":
         $formoutput[] = '<p>'.$element[1].'</p>';
      
      break;   
   
      case "select":

         $SEL = new select();
         $SEL->set_name("FORM[".$formname."][el_".$i."]");
         $SEL->set_id("el_".$i);
         $SEL->set_size(1);
         $SEL->set_style(' class="select"');
      
         if($FORM[$formname]["el_".$i] == "" && !$FORM[$formname][$formname."send"]){
            $SEL->set_selected($element[3]); } else { $SEL->set_selected($FORM[$formname]["el_".$i]);
         }

         foreach(explode(";", trim($element[4])) as $v){
            $SEL->add_option( $v, $v);
         }
      
         if($element[2] == 1 && trim($FORM[$formname]["el_".$i] )== "" && $FORM[$formname][$formname."send"] == 1){
            $warning["el_".$i] = $style;
         }
      
         $formoutput[] = '
            <label class="select" '.$warning["el_".$i].' for="el_'.$i.'" >'.$element[1].'</label>
            '.$SEL->out().'<br />';
      break;
         
      case "checkbox":
      
         if(   (trim($FORM[$formname]["el_".$i] )== "1" ) || ($FORM[$formname]["el_".$i] == "" && !$FORM[$formname][$formname."send"] && $element[3] == 1)){
            $checked = ' checked="checked"';
            $hidden="";
         }
         else {
            $checked = "";
            $hidden = '<input type="hidden" name="FORM['.$formname.'][el_'.$i.']" value="0" /><br />';
         }

         if($element[2] == 1 && trim($FORM[$formname]["el_".$i]) == "" && $FORM[$formname][$formname."send"] == 1){
            $warning["el_".$i] = $style;
         }
      
         $formoutput[] =
               $hidden.'
               <input type="checkbox" class="checkbox" name="FORM['.$formname.'][el_'.$i.']" id="el_'.$i.'" value="1" '.$checked.' />
               <label class="checkbox" '.$warning["el_".$i].' for="el_'.$i.'" >'.$element[1].'</label><label class="checkbox" '.$warning["el_".$i].' for="el_'.$i.'" >'.$element[8].'</label><br />
               ';
      break;
   }
}

$out = '
   <div id="form-module">
   <form action="'.rex_getUrl($this->getValue("article_id")).'" method="post">
      <fieldset>

      <legend>'.$formname.'</legend>
      <input type="hidden" name="FORM['.$formname.']['.$formname.'send]" value="1" />';

foreach($formoutput as $v){
   $out .= '
      <div class="element">'.$v.'</div>';
}
$out .= '
      <div class="element">
         <input type="submit" name="FORM['.$formname.']['.$formname.'submit]" value="'.$submitlabel.'" class="submit" />
      </div>
      </fieldset>
   </form>
   </div>';

if($FORM[$formname][$formname."send"] == 1 && count($warning)==0){
   $mail = new PHPMailer();
   $mail->AddAddress("REX_VALUE[1]");
   $mail->From = "REX_VALUE[2]";
   $mail->Subject = "REX_VALUE[4]";
   $mail->FromName = "REX_VALUE[8]";
   
   foreach($FORM[$formname] as $k=>$v){
      if($k != $formname."submit" && $k != $formname."send")
      $mailbody .= $AFE[ereg_replace("el_","",$k)][1]." ".stripslashes($v)."\n";
   }
   
   $mail->Body = $mailbody;
   $mail->Send();
   
   print '<div id="form-module-thanks">'."REX_VALUE[6]".'</div>';

}
else {
   print $out;
}
?>



Vielen Danke für Eure Hilfe!
Schöne Grüße
sek
 
Beiträge: 34
Registriert: 11. Sep 2008, 16:19
Wohnort: Görlitz

Beitragvon sek » 29. Mai 2009, 09:16

bin ich etwa der einzige mit dem problem.

hm, na dann schildere ich mal wie es auftrat.
bin beim hoster 1blu alles lief einwandfrei, duch das aufspielen einer php.conf datei auf den server konnte ich den server auf php5.1.4 umstellen - seitdem funktioniert das modul formular erzeugen nicht mehr.
sek
 
Beiträge: 34
Registriert: 11. Sep 2008, 16:19
Wohnort: Görlitz

Beitragvon Gregor.Harlan » 29. Mai 2009, 13:34

Hallo,

probier es mal so:

Ausgabe
Code: Alles auswählen
<?php
$FORM = $_POST['FORM'];

$rex_form_data = <<<End
REX_HTML_VALUE[3]
End;
//...


Gruß, gregor
Benutzeravatar
Gregor.Harlan
Entwickler
 
Beiträge: 825
Registriert: 4. Jun 2007, 09:35
Wohnort: Dresden

Beitragvon sek » 31. Mai 2009, 16:42

hat nix geholfen.

aber es liegt wohl daran, das redaxo schon lief und erst dann der server mit der php.conf umgestellt wurde.


bleibt mir also wohl nix übrig, redaxo zu deinstallieren und erneut zu installieren, damit es schnallt, das der server auf php5.1.4 läuft.


aber danke für den hilfeversuch.
sek
 
Beiträge: 34
Registriert: 11. Sep 2008, 16:19
Wohnort: Görlitz


Zurück zu Module/Aktionen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste