Hi!
Wie ihr aus meiner folgenden Beschreibung wahrscheinlich gleich erkennen werdet bin ich ziemliche Anfängerin...
Ich habe ein (hoffentlich) kleines Problem mit Sonderzeichen und einem wirklich primitiven CGI Script.
Auf einer HTML Seite kann man ein ein Formularfeld ausfüllen. Diese Nachricht "wandert" dann via CGI Script auf eine andere HTML Seite ("neuigkeiten.html). Diese Seite wird dann in weiterer Folge via PHP Script <?php include("inhalt.htm"); ?> in ein DIV meiner eigentlichen Website geladen.
Alles funktioniert so weit ausgezeichnet.
Das einzige Problem:
Wenn man im Formularfeld Sonderzeichen wie ä ö ü bzw Absätze eingibt, werden diese natürlich nicht korrekt dargestellt.
Deshalb meine Frage:
Kann man den folgenden CGI Script so bearbeiten, dass Sonderzeichen auf der "neuigkeiten.html" Seite richtig dargestellt werden? Bzw. Absätze übernommen werden, damit man im Formular nicht jedes Mal <br> schreiben muss.
Hier der Script:
use CGI qw(:standard) ;
@datei = "$pfad/$data" ;
print header();
$kom = param("kommentar") ;
open(FILE,"@datei");
@lines = <FILE>;
close(FILE);
@monate = ('01','02','03','04','05','06','07','08','09','10','11','12');
($sec,$min,$hour,$mday,$mon,$year,$wday) = (localtime(time))[0,1,2,3,4,5,6];
if ($mday < 10) { $mday = "0$mday"; }
if ($year > 99) { $year = $year + 1900; }
$date = "$mday.$monate[$mon].$year ";
Eintrag ins Gästebuch hinzufügen:
open (FILE,">@datei");
foreach $line (@lines) {
if ($line =~ /<!--name-->/) {
print FILE "<!--name-->\n" ;
print FILE qq~
Eintrag am $date<br><br>
<b>$kom</b><br><br>
<hr noshade size=2><br>
~
}
else {
print FILE $line ;
}
}
close (FILE);
&ende ;
sub ende {
print <<ENDE ;
<div align="center"><br><br><br><br><br><br><br>
Danke für Ihren Eintrag!
<br><br>
<a href="http://irgendeineseite.de">Zurück zum Gästebuch</a>
<br><br><br><br><br><font size="-1">
</font></div>
ENDE
}
sub fehler { print "<b>Fehler: Kein Name <br>Bitte geben Sie Ihren Namen an! <br><br><a href="javascript:history.back(-1)">zurück</a>";
last;
}
sub fehler1 { print "<b>Fehler: Keine Nachricht <br>Bitte füllen Sie das Formular neu aus! <br><br><a href="javascript:history.back(-1)">zurück</a>";
last;
}