Hi,
Aber in der nächsten Subroutine is die Kodierung schon wieder vergessen worden
wie übergibst Du die Daten der Subroutine, wie verwendest Du sie, wie wurden sie definiert/deklariert, gibt es Referenzen, ...
Hmmm, das ist irgendwie ziemlich umfangreich, aber ich versuche mal das Relevante herauszunehmen :
Ich rufe die Sub "linkverbesserung" auf :
linkverbesserung($pointer,$changedtext,$text,$thema,$name,$usergrafik,$breite,$hoehe,$email,$hpadresse,$icq);
-----------------
Hier ist die Subroutine "linkverbesserung":
---------------
sub linkverbesserung {
my ($pointer,$neuertext,$text,$thema,$name,$usergrafik,$breite,$hoehe,$email,$hpadresse,$icq) = @_;
$thema = HTML::Entities::encode($thema);
$name = HTML::Entities::encode($name);
$text = HTML::Entities::encode($text);
print <<EOF;
<link rel="stylesheet" type="text/css" href="neuesposting.css">
<title>xNeTworKx's Bulletin Board V3.0</title>
</head>
<body>
<div>
<form action="" method="post">
<table>
<colgroup>
<col width="50%">
<col width="50%">
</colgroup>
<tr><td colspan="2" class="mitte">Die Grafiken müssen jetzt funktionieren, aber es wurden nicht anklickbare Links entdeckt !<br>
Klicke auf "zurück" und setze bitte die Links zwischen ein [link] und [/link].<br>
Bedenke : Links müssen auch als absolute Pfade geschrieben werden (also inkl. http://, ftp://...)</td></tr>
<tr><td colspan="2" class="postinghintergrund">$neuertext</td></tr>
<tr><td colspan="2" class="mitte"> Soll das Posting trotzdem abgeschickt werden ? </td></tr>
<tr><td class="mitte">zurück, Links korrigieren : <input type="radio" name="action" value="korrigieren" checked></td><td class="mitte">Posting trotzdem abschicken : <input type="radio" name="action" value="abschicken"></td></tr>
<tr><td colspan="2" class="mitte"><input type="hidden" name="pointer" value="$pointer">
<input type="hidden" name="text" value="$text">
<input type="hidden" name="thema" value="$thema">
<input type="hidden" name="name" value="$name">
<input type="hidden" name="usergrafik" value="$usergrafik">
<input type="hidden" name="breite" value="$breite">
<input type="hidden" name="hoehe" value="$hoehe">
<input type="hidden" name="email" value="$email">
<input type="hidden" name="hpadresse" value="$hpadresse">
<input type="hidden" name="icq" value="$icq">
<input type="submit" class="linkbutton" value="senden"></td></tr>
</table>
</form>
</div>
EOF
}
--------------
Klicke ich jetzt auf "korrigieren" im Formluar, und der Aufruf dieses Teils des CGI Scripts tritt in Kraft, muss ich trotzdem encode_entities nach der Variablenübergabe angeben (siehe unten), weil die Variablen wieder unencoded sind, also im HTML Quelltext wird " und < usw auch so dargestellt. (obwohl ich oben $thema = HTML::Entities::encode($thema); angegeben habe ?)
----------------------------------
if ($query->param('action') eq 'korrigieren') {
my $pointer = $query->param('pointer');
my $text = $query->param('text');
my $thema = $query->param('thema');
my $name = $query->param('name');
my $usergrafik = $query->param('usergrafik');
my $breite = $query->param('breite');
my $hoehe = $query->param('hoehe');
my $email = $query->param('email');
my $hpadresse = $query->param('hpadresse');
my $icq = $query->param('icq');
my $error = 0;
encode_entities($thema);
encode_entities($name);
encode_entities($text);
.
.
.
.
$xNeTworKx.