[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Formular erzeugen Probleme seit PHP 5 - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
sek
Beiträge: 48
Registriert: 11. Sep 2008, 17:19
Wohnort: Görlitz

Formular erzeugen Probleme seit PHP 5

25. Mai 2009, 01: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 />
	<textarea> Geben Sie hier bitte Ihre SpaßAdresse an! </textarea>
	</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: 48
Registriert: 11. Sep 2008, 17:19
Wohnort: Görlitz

29. Mai 2009, 10: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.

Benutzeravatar
Gregor.Harlan
Entwickler
Beiträge: 1130
Registriert: 4. Jun 2007, 10:35
Wohnort: Frankfurt am Main

29. Mai 2009, 14: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

sek
Beiträge: 48
Registriert: 11. Sep 2008, 17:19
Wohnort: Görlitz

31. Mai 2009, 17: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.

Zurück zu „Allgemeines [R3]“