Hallöchen!
Ich hab mir in Perl einen kleinen einfachen Chat geschrieben. Der läuft auch soweit ganz gut. Ich hab ein Messagefenster und ein Fenster mit einem Formular, in dem man Nachricht, Schriftart, Schriftgröße und die Formatierung (fett,kursiv,unterstrichen) wählen kann. Diese Einstellungen sollen natürlich übernommen werden, damit man nicht für jede Nachricht alles neu anklicken muß. Bei der Schriftart/-größe klappt das. Nur bei der Formatierung tritt ein seltsamer Fehler auf. Wenn fett angewählt ist, wird dies übernommen (wenn kursiv und unterstrichen noch zusätzlich angewählt sind auch). Wenn ich aber nur kursiv, nur unterstrichen oder nur kursiv und unterstichen anwähle, verschwindet das beim absenden wieder. Kreuz ich wieder fett an, wird fett auch wieder übernommen.
Hier der Code, mit dem die Formulardaten weiterverarbeitet werden:
-------------------- schnipp-------------------------
if($ENV{'REQUEST_METHOD'} eq 'GET')
{
$Daten = $ENV{'QUERY_STRING'}
}
else
{
read(STDIN, $Daten, $ENV{'CONTENT_LENGTH'});
}
@Formularfelder = split(/&/, $Daten);
foreach $Feld (@Formularfelder)
{
($name, $value) = split(/=/, $Feld);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g;
$Formular[$i] = $name;
$i = $i + 1;
$Formular[$i] = $value;
$i = $i + 1;
}
-------------------- schnapp-------------------------
Und hier der Abschnitt mit dem Code, der die Formatierung im Formular regelt:
-------------------- schnipp-------------------------
print " <input type=checkbox ";
if ($Formular[9] eq 'fett')
{
print "checked ";
}
print "name=schriftformat1 value=fett><b>fett</b>\n";
print " <input type=checkbox ";
if ($Formular[11] eq 'kursiv')
{
print "checked ";
}
print "name=schriftformat2 value=kursiv><i>kursiv</i>\n";
print " <input type=checkbox ";
if ($Formular[13] eq 'unterstrichen')
{
print "checked ";
}
print "name=schriftformat3 value=unterstrichen><u>unterstrichen</u>\n";
-------------------- schnapp-------------------------
Ich kann mir da ehrlich gesagt keinen Reim drauf machen. Aber vielleicht weiß einer von Euch, wo der Fehler liegen könnte.
Gruß, Jan.
www.Planet-1.de