Keine Leerzeichen in input type=text erlaubt?

Wie verwendet man Module oder Aktion und passt diese an.

Keine Leerzeichen in input type=text erlaubt?

Beitragvon katharina » 18. Jun 2008, 10:45

Hallo!
Ich baue mir gerade ein Modul zusammen und bin auf einen merkwürdigen Fehler gestoßen.

Moduleingabe:
Code: Alles auswählen
<strong>Titel</strong>:<br />
<input type="text" name="VALUE[1]" value="REX_VALUE[1]" size="80" class="inp100" />


Modulausgabe:
Code: Alles auswählen
<?php

// Überschrift
$titel = "";

if ("REX_VALUE[1]" != "") {
    $titel = REX_VALUE[1];
}
   else {
   $titel = 'Kein Titel vorhanden!';
   }

echo "<p>" . $titel . "</p>";

?>


Ist ja erstmal simpel.
Probleme gibt es, wenn ich für Titel etwas mit Leerzeichen eingebe, dann gibts eine Fehlermeldung.
Parse error: syntax error, unexpected T_STRING in f:\teddystiftung2008\redaxo\include\classes\class.rex_article.inc.php(596) : eval()'d code on line 130

Wieso??? Bei normalen Formularen auf Webseiten habe ich das oft und da geht das mit Leerzeichen.

Wenn ich das ohne php einfach <p>REX_VALUE[1]</p> ausgebe geht es, mit echo REX_VALUE[1] dann nicht...
Stehe auf dem Schlauch...

Danke und Gruß,
Katharina
Benutzeravatar
katharina
 
Beiträge: 61
Registriert: 28. Jan 2006, 14:08

Beitragvon bit » 18. Jun 2008, 11:41

Hallo Katharina,

funktioniert es wenn du
Code: Alles auswählen
$titel = REX_VALUE[1];
gegen
Code: Alles auswählen
$titel = "REX_VALUE[1]";
austauschst?

Gruß
Jürgen
bit
 
Beiträge: 35
Registriert: 9. Dez 2007, 16:39

Beitragvon Markus.Staab » 18. Jun 2008, 14:10

Hi,

die Lösung von Jürgen geht, solange kein " eingegeben wird.

Beste Lösung ist folgende:
$titel = htmlspecialchars_decode("REX_VALUE[1]");

Das sollte uneingeschränkt mit allen Sonderzeichen o.ä. gehen. (seit REDAXO 4.1)

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon zehbaeh » 18. Jun 2008, 14:33

hmm...mit htmlspecialchars_decode sollte man dann aber besser kein '<' eingeben.

Siehe zb.:
http://www.edition-w3.de/TR/1999/REC-ht ... type-cdata

PS: Im konkreten Fall werden die Daten ja sogar ausserhalb einer Eigenschaftswertzuweisung verwendet, und somit müsste auch '>' maskiert (bzw. als Entity angegeben werden.

PS@Markus: Warum sollen denn die Entities in konkrete Zeichen umgewandelt werden, das kann ich gerade nicht nachvollziehen. Die Anführungszeichen bereiten doch in 4.1 bei Verwendung von "REX_VALUE[x]" keine Probleme mehr, oder hab ich was verpasst?)
zehbaeh
 
Beiträge: 563
Registriert: 17. Okt 2006, 10:52
Wohnort: Solingen


Zurück zu Module/Aktionen [R4]

Wer ist online?

Mitglieder in diesem Forum: Cheffchen, Google [Bot] und 2 Gäste