Zeichen Konvertierung / convert_... |
Gänzlich anders muss mit Sonderzeichen in einer URL verfahren werden. So darf z.B. kein Leerzeichen darin vorkommen. stattdessen muss dafür ein Plus-Zeichen + stehen. Was aber wenn man nun das Plus-Zeichen + selbst angeben will? Dann muss dieses mit %2b geschrieben werden. Da nun damit das %-Zeichen auch eine besondere Bedeutung hat, muss es mit %25 ebenfalls kodiert werden.
Perl oder Javascript gehen wieder anders mit Sonderzeichen um.
baseportal stellt für diese Fälle eine Reihe von Konvertierungsroutinen bereit:
Funktion | Beschreibung |
---|---|
convert_br | Wandelt einen Zeilenumbruch in den HTML-Code <br> |
convert_html | Wandelt &, ", <, > und Umlaute (ä, ü, ö etc.) in die HTML-Pendants &, ", <, >, ä, ü etc. |
convert_links | Wandelt Internet-Adressen, die mit http:// eingegeben wurden, in Links um. Außerdem werden EMail-dressen erkannt und wie bei convert_html die speziellen HTML-Zeichen <, > & und " umgewandelt. |
convert_quote | Wandelt das Hochkomma ", den Apostroph ' und den Backslash \ in ", \' und \\ |
convert_url | Wandelt %, \, |, &, ", + in den entsprechenden %xx-Code, sowie das Leerzeichen in ein + |
convert_xml | Wandelt &, ", <, >, ' und Umlaute (ä, ü, ö etc.) in die XML-Entities &, ", <, >, ', ä, ü, ö etc. |
encode_base64 | Der Text wird nach base64 codiert |
decode_base64 | Der base64-codierte Text wird wieder sichtbar gemacht |
Beispiel:
<do action=input> <loop code=perl> out convert_html($Name)." - "; out '<a href="/cgi-bin/baseportal.pl?htx=/name/seite&cmd=del&Id=$_id" onclick="return confirm(\''.convert_quote($Name).' wirklich löschen?\')">Löschen?</a>'; out "<p>"; </loop>
"Entschärft" alle HTML-Spezialzeichen des Feldes "Name" und gibt es, zusammen mit einem "Löschen?"-Link aus. Klickt man auf diesen Link erscheint eine Javascript-Abfrage, ob man dies wirklich will. Sollte der Feldinhalt Apostrophe enthalten, werden diese gewandelt, so dass es zu keiner Javascript-Fehlermeldung kommen kann.