Schrift
[thread]765[/thread]

CGI Gästebuch schreibt font falsch



<< |< 1 2 >| >> 19 Einträge, 2 Seiten
skybreaker
 2006-06-27 17:08
#8195 #8195
User since
2006-06-27
6 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hey Leute,

ich habe mir jetzt ein CGI script zusammengebastelt. das soll ein Gästebuch darstellen. mein problem ist, bei einigen beiträgen, die man einschreibt, wird der fontstyle "bold" irgendwie ignoriert.

ich poste hier mal den code vom script
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/usr/bin/perl -w

use strict;
use warnings;
use CGI;
my $cgi = new CGI;
use CGI::Carp qw(fatalsToBrowser);

my $datum;
my $uhrzeit;

sub gbinschreiben {
open(GBEINTR, "> gbookin.txt") or die "Kann gbookin.txt nicht öffnen: $!";
my $feldname = $cgi->param('vname');
my $feldemail = $cgi->param('email');
my $feldhp = $cgi->param('homepage');
my $feldsonst = $cgi->param('sonstiges');
print GBEINTR ('<b><div><table border="1" cellpadding="5" cellspacing="0" width="75%" style="margin-left:auto; margin-right:auto;">',"\n");
print GBEINTR ('<tr><td><span style="float:left"><span style="color:white; font-size:1.2em">' ,$feldname,

'</span><span style="font-size:0.8em"> schrieb am ' ,$datum, " um " ,$uhrzeit);
if ($feldemail =~ /leer/) {
$feldemail = 1;
} else {
print GBEINTR ("\n",'<br>E-Mail: ' ,$feldemail, ' ');
}
if ($feldhp =~ /leer/) {
$feldhp = 1;
} else {
print GBEINTR ("\n",'<br>Homepage: ' ,$feldhp, ' ');
}
print GBEINTR ('</span></span></td></tr>',"\n",'<tr><td><span style="float:left">' ,$feldsonst, '</span></td></tr></table></div></b><br>',"\n\n");
open(GBAUSL, "< gbookausl.txt") or die "Kann gbookausl.txt nicht öffnen: $!";
foreach my $lineausl (<GBAUSL>) {
print GBEINTR $lineausl;
}
close GBAUSL;
close GBEINTR;
open(GBAUSL, "> gbookausl.txt") or die "Kann gbookausl.txt nicht öffnen: $!";
open(GBEINTR, "< gbookin.txt") or die "Kann gbookin.txt nicht öffnen: $!";
foreach my $linecopy (<GBEINTR>) {
print GBAUSL $linecopy;
}
close GBEINTR;
close GBAUSL;
}

sub zeitrechnung {
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,
$Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
$Monat+=1;
$Jahrestag+=1;
$Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat;
$Monatstag = $Monatstag < 10 ? $Monatstag = "0".$Monatstag : $Monatstag;
$Stunden = $Stunden < 10 ? $Stunden = "0".$Stunden : $Stunden;
$Minuten = $Minuten < 10 ? $Minuten = "0".$Minuten : $Minuten;
$Sekunden = $Sekunden < 10 ? $Sekunden = "0".$Sekunden : $Sekunden;
$Jahr+=1900;
my @Wochentage = ("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
my @Monatsnamen = ("","Januar","Februar","M&auml;rz","April","Mai","Juni",
"Juli","August","September","Oktober","November","Dezember");
$datum = "$Wochentage[$Wochentag], den $Monatstag. $Monatsnamen[$Monat] $Jahr";
$uhrzeit = "$Stunden.$Minuten Uhr";
}

sub gbookschreiben {
open(INFILE, " gbookin.txt") or die "Kann gbookin.txt nicht öffnen: $!";
open(GBOOKFILE," gaestebuch_default.txt") or die "Kann gaestebuch_default.txt nicht öffnen: $!";
my $gline;
for (my $h=0; $h<15;$h++) {
$gline = <GBOOKFILE>;
print $gline;
}
foreach my $line (<INFILE>) {
print $line;
}
for (my $h=15; $h<47;$h++) {
$gline = <GBOOKFILE>;
print $gline;
}
close INFILE;
close GBOOKFILE;
}

print "Content-Type: text/html; charset=ISO-8859-1\n\n";
zeitrechnung;
gbinschreiben;
gbookschreiben;


ich finde keinen grund, warum er die sachen nicht mehr im bold-style schreibt, die dateien, die er erstellt sind ok, dort fehlt auch kein schlusstag (z.B. "</b>") oder so.
könnt ihr hier mal durchschauen? wahrscheinlich bin ich schon so blind, das ich das nicht mehr sehe!
wenn ihr noch mehr informationen braucht, dann sagt es.
das script liegt hier CGI-SCRIPT beachte, das "Name, EMail, Homepage, und Text" auch manchmal Fett erscheinen, was sie auch sollten! ich habe vorerst meine probe beiträge gelöscht, ihr könnt euch selbst welche anlegen, dann seht ihr vielleicht das problem (ab dem 3. manchmal auch 5. eintrag, und folgende, zu sehen)

wäre nett wenn ihr mir helfen könntet!

mfg sky
esskar
 2006-06-27 17:16
#8196 #8196
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ich seh nicht, was du willst.

du solltest aber mal einige sachen verbessern.
z.b. sollten html-tags ausgeschaltet werden

außerdem solltest du flock benutzen!
skybreaker
 2006-06-27 17:20
#8197 #8197
User since
2006-06-27
6 Artikel
BenutzerIn
[Homepage] [default_avatar]
k htmltags ausschalten kann ich probieren,
und was meinst du mit flock?

hast du es nicht bemerkt, das die beiträge mal im bold style und mal ganz normal angezeigt werden? was hast du für ein browser probiert?
esskar
 2006-06-27 17:34
#8198 #8198
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
opera, 8.52
IE, 7 beta

mit flock meinte ich sowas
Wiki:Wissensbasis.WieSperreIchEineDatei und perldoc -f flock\n\n

<!--EDIT|esskar|1151415336-->
skybreaker
 2006-06-27 17:43
#8199 #8199
User since
2006-06-27
6 Artikel
BenutzerIn
[Homepage] [default_avatar]
der ie interpretiert es korrekt, das ist richtig, und opera hat anscheinend die gleiche technick, weil beim testen meiner seite immer die gleichen felhler in opera wie im ie auftauchten, genauso wie mozilla und netscape, die haben auch die gleichen fehler gemacht.

aber nun mal zum script... mozilla interpretiert es falsch! und das will ich abschalten!
ich sehe keinen grund, warum ich flock benutzen sollte, gibt es denn anwender, die auf die datei (laut flock...) "zugreifen können, wenn sie geöffnet ist"?

P.S. wie sperre ich denn html tags, ich finde darüber keine erklärung\n\n

<!--EDIT|skybreaker|1151416065-->
Strat
 2006-06-27 17:48
#8200 #8200
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
du hast ein paar HTML Fehler
Code: (dl )
print GBEINTR ('<b><div><table border="1" cellpadding="5" cellspacing="0" width="75%" style="margin-left:auto; margin-right:auto;">',"\n");

div nach b ist nicht erlaubt

[html]
<form action="../cgi-bin/gbookschreib.pl" method="POST" onsubmit="return formulareingabe()" name="formular"><div>
[/html]
besser form in div setzen

[html]
</b></p></div></form>
[/html]
p hat anscheinend keinen oeffenden tag
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
esskar
 2006-06-27 18:04
#8201 #8201
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=skybreaker,27.06.2006, 15:43]ich sehe keinen grund, warum ich flock benutzen sollte, gibt es denn anwender, die auf die datei (laut flock...) "zugreifen können, wenn sie geöffnet ist"?[/quote]
hmm.
wenn sich 1000 besucher gleichzeitig in dein gästebuch eintragen, was passiert dann?

zum thema tags.

Code: (dl )
1
2
3
my $beitrag = 'ich bin ein <script>alert("gefaehrlicher")</script> beitrag!';
$beitrag =~ s!<!&lt;!g;
$beitrag =~ s!>!&gt;!g;


so z.b
skybreaker
 2006-06-27 18:04
#8202 #8202
User since
2006-06-27
6 Artikel
BenutzerIn
[Homepage] [default_avatar]
zu strat:
Quote
div nach b ist nicht erlaubt

das wusste ich nicht

Quote
besser form in div setzen

habe ich gemacht

Quote
p hat anscheinend keinen oeffenden tag

doch hatte es, ich habe es vorsichtshalber rausgenommen...

super, das du das gefunden hast, aber der fehler ist immernoch vorhanden...

kennst du vielleicht etwas, wo ich etwas zum sperren von htmltags finde?

zu eeskar
was passiert dann?
andererseits: ich glaube nicht, das das jemals so sein wird...
aber bitte erklärs mir.

was bedeutet das: s!<!&lt;!g;
sowas wie, wenn $beitrag ... enthält, dann stop?\n\n

<!--EDIT|skybreaker|1151417335-->
esskar
 2006-06-27 18:14
#8203 #8203
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=skybreaker,27.06.2006, 16:04]was passiert dann?
andererseits: ich glaube nicht, das das jemals so sein wird...
aber bitte erklärs mir.[/quote]
okay, vielleicht nicht 1000.
2 reichen schon.

min. 1er von den beiträgen geht verloren!
pq
 2006-06-27 18:42
#8204 #8204
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
man kann auch 50 jahre unangeschnallt autofahren, weil man denkt, man passt ja
auf und es ist unwahrscheinlich, dass was passiert.
aber anschnallen kostet nur ein paar sekunden. flock einbauen vielleicht
etwas mehr, aber nur einmal (pro skript).
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2006-06-27 17:08.