Avatar billede kimlarsen Praktikant
30. maj 2002 - 09:25 Der er 43 kommentarer og
1 løsning

Brug af CSS i et cgi-script ?

Måske et dumt spørgsmål, men kan man kalde sit stylesheet i et cgi-script ?

Jeg har dette lille script, som finder de 5 nyeste links frem fra min database, men det bliver vist med normalsize bogstaver og farver.

#!/usr/bin/perl

eval {
    ($0 =~ m,(.*)/[^/]+,)  && unshift (@INC, "$1"); 
    ($0 =~ m,(.*)\\[^\\]+,) && unshift (@INC, "$1");

    require "admin/links.cfg";         
    require "$db_lib_path/db_utils.pl";
    require "$db_lib_path/links.def";
};
if ($@) {
    print "Content-type: text/plain\n\n";
    print $@;
    exit;
}

&main;

sub main {

    my @data = `tail -$max_new $db_links_name`;
    my $i = 0;

    print "Content-type: text/html\n\n";
print qq|<body bgcolor="#EEEEEE" link="#0000FF" vlink="#0000FF" alink="#0000FF" topmargin="0" leftmargin="0">|;
    print qq|<table width="150" cellspacing="0" >|;
    foreach (@data) {
   
      chomp;
      split /\|/;
      print qq|<tr width="100%"><td width="150" onmouseover="this.style.backgroundColor='#EEEBCB'" onmouseout="this.style.backgroundColor='white'" bgColor="#ffffff"><a style ="text-decoration: none" href="$_[$db_url]" target="_blank">$_[$db_title]</a></td></tr>|;
    }
    print "</table></body>";

}

Jeg ville gerne have at mit stylesheet som blev brugt istedet !
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 09:28 #1
Så skal du bare printe dit stylesheet ud i din <head>...</head> --- hmm
hvor blev den af?

Eller skrive det HTML ud der skal til at inkludere den fra en .css fil.
Avatar billede kimlarsen Praktikant
30. maj 2002 - 09:35 #2
Kan man da sætte en <head> ind i et cgi-script ?
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 09:36 #3
Ja, du skal jo

  print "<head>";
  print "<style>";
  print "p {font-size: 3000px}";
  print "</style>";
  print "</head>";

et passende sted i dit script.
Avatar billede kimlarsen Praktikant
30. maj 2002 - 09:37 #4
Gider du give et skrevet eksempel på hvad du mener ?
Avatar billede kimlarsen Praktikant
30. maj 2002 - 09:37 #5
Undskyld, jeg var for langsom
Avatar billede kimlarsen Praktikant
30. maj 2002 - 09:38 #6
Men jeg kan ikke desideret kalde mit stylesheet fra "styles/style.css/ ?

jeg er nødt til at definere alle relevante punkter igen med en "print " `?
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 09:43 #7
Det kan du sagtens - men det var bare et lille eksempel. Du printer
bare hvad du ellers ville have skrevet i HTML
Avatar billede kimlarsen Praktikant
30. maj 2002 - 09:45 #8
Det vil sige at jeg ændre mit script som sådan her :

#!/usr/bin/perl

eval {
    ($0 =~ m,(.*)/[^/]+,)  && unshift (@INC, "$1"); 
    ($0 =~ m,(.*)\\[^\\]+,) && unshift (@INC, "$1");

    require "admin/links.cfg";         
    require "$db_lib_path/db_utils.pl";
    require "$db_lib_path/links.def";
};
if ($@) {
    print "Content-type: text/plain\n\n";
    print $@;
    exit;
}

&main;

sub main {

   
    my @data = `tail -$max_new $db_links_name`;
    my $i = 0;

print "<head>   
print "<LINK href="http://www.rejsebeskrivelser.dk/build01/styles/styles.css"
type=text/css rel=stylesheet>";
print "</head>     

    print "Content-type: text/html\n\n";

    print qq|<body bgcolor="#EEEEEE" link="#0000FF" vlink="#0000FF" alink="#0000FF" topmargin="0" leftmargin="0">|;
    print qq|<table width="150" cellspacing="0" >|;
    foreach (@data) {
   
      chomp;
      split /\|/;
      print qq|<tr width="100%"><td width="150" onmouseover="this.style.backgroundColor='#EEEBCB'" onmouseout="this.style.backgroundColor='white'" bgColor="#ffffff"><a style ="text-decoration: none" href="$_[$db_url]" target="_blank">$_[$db_title]</a></td></tr>|;
    }
    print "</table></body>";

}

Desværre får jeg bare en fejl ud af det !
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 09:48 #9
Der mangler vist noget i

  href="$_[$db_url"

Men når du siger der "en fejl" kan du så ikke forstå at vi ikke kan bruge det til noget som
helst. Du *SKAL* skrive hvad fejlen er.
Avatar billede kimlarsen Praktikant
30. maj 2002 - 09:54 #10
Naturligvis :-). Jeg har vist ikke fået søvnen helt ud af øjet endnu !

Internal server error.

Og href="$_[$db_url" er helt som den skal være. Scriptet køre nemligt fint, sålænge jeg ikke piller ved det.

Det er ligeså snart jeg forsøger at knytte den forbistrede ccs på, at jeg får en internal server error.

Jeg uploader naturligvis i binærd og cmod filen til 755
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 09:58 #11
href="$_[$db_url]"

??
Avatar billede kimlarsen Praktikant
30. maj 2002 - 10:00 #12
Du har ret. Står også i scriptet. Klippe klister har snuppet enden.
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 10:05 #13
print "<head>";
print "<LINK href=\"http://www.rejsebeskrivelser.dk/build01/styles/styles.css\" type=text/css rel=stylesheet>";
print "</head>";
Avatar billede kimlarsen Praktikant
30. maj 2002 - 10:11 #14
Jeg må være dummer end loven tillader. Men jeg sætter dit forslag ind her :

sub main {

    my @data = `tail -$max_new $db_links_name`;
    my $i = 0;

    print "Content-type: text/html\n\n";

print "<head>";
print "<LINK href=\"http://www.rejsebeskrivelser.dk/build01/styles/styles.css\" type=text/css rel=stylesheet>";
print "</head>";

print qq|<body bgcolor="#EEEEEE" link="#0000FF" vlink="#0000FF" alink="#0000FF" topmargin="0" leftmargin="0">|;
    print qq|<table width="150">|;
    foreach (@data) {

Uploader i binærd og cmoder til 755 - men får alligevel følgende fejl

Warning: Failed opening 'http://www.rejsebeskrivelser.dk/cgi-bin/topx.cgi' for inclusion (include_path='') in /home/webhotel/rejsebeskrivelser.dk/htdocs/index4.php on line 211
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 10:14 #15
det her vel ikke noget med dette at gøre...... Du har en include, men der kan du ikke
skrive "http://..." for der skal du skrive et filnavn på serveren.
Avatar billede kimlarsen Praktikant
30. maj 2002 - 10:15 #16
Fejlmeddelsen skal nok ses i lyset af at jeg bruger en php include til at hente filen med. Kalder jeg scriptet direkte, får jeg en internal server error.

Prøver lige at kikke i min error.log
Avatar billede kimlarsen Praktikant
30. maj 2002 - 10:16 #17
"Du har en include, men der kan du ikke
skrive "http://..."

Jamen, sålænge jeg ikke ændre på scriptet, virker det jo perfekt.
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 10:16 #18
Hvis du vil have en "http://" ind i dit php (!!) script - du forstår at forvirre mig *g* - skal
du nok bruge file("http://....") - men ikke include.
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 10:17 #19
Ok, så kan man bruge http::// i en include i PHP. Men der er stadig syntaksfejl
i dit Perl script.
Avatar billede kimlarsen Praktikant
30. maj 2002 - 10:19 #20
Og ifølge min errorlog er fejlen : Premature end of script headers: /home/webhotel/rejsebeskrivelser.dk/htdocs/cgi-bin/topx.cgi

Ikke at det siger mig ret meget :-(
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 10:20 #21
Det siger at der er en syntaksfejl :)
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 10:21 #22
Vi skal vist se heeele scriptet igen...
Avatar billede kimlarsen Praktikant
30. maj 2002 - 10:25 #23
#!/usr/bin/perl

eval {
    ($0 =~ m,(.*)/[^/]+,)  && unshift (@INC, "$1"); 
    ($0 =~ m,(.*)\\[^\\]+,) && unshift (@INC, "$1");

    require "admin/links.cfg";         
    require "$db_lib_path/db_utils.pl";
    require "$db_lib_path/links.def";
};
if ($@) {
    print "Content-type: text/plain\n\n";
    print $@;
    exit;
}

&main;

sub main {

    my @data = `tail -$max_new $db_links_name`;
    my $i = 0;

    print "Content-type: text/html\n\n";
print qq|<body bgcolor="#EEEEEE" link="#0000FF" vlink="#0000FF" alink="#0000FF" topmargin="0" leftmargin="0">|;
    print qq|<table width="150">|;
    foreach (@data) {
   
      chomp;
      split /\|/;
      print qq|<tr width="100%"><td width="150" onmouseover="this.style.backgroundColor='#EEEBCB'" onmouseout="this.style.backgroundColor='white'" bgColor="#ffffff"><a style ="text-decoration: none" href="$_[$db_url]" target="_blank">$_[$db_title]</a></td></tr>|;
    }
    print "</table></body>";

}
Avatar billede kimlarsen Praktikant
30. maj 2002 - 10:26 #24
Der røg ] i href="$_[$db_url" igen
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 10:28 #25
ja, og når den er tilbage er der ingen syntaksfejl
Avatar billede kimlarsen Praktikant
30. maj 2002 - 10:30 #26
Men når jeg nu ved at tekststørrelsen skal være 70% af normal og at det skal være i Ariel. Kan jeg så ikke bare sætte det ind her i stedet ?

"><a style ="text-decoration: none" font face="Arial" font-size: 70% href="$_[$db_url" target="_blank">$_[$db_title]</a>
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 10:32 #27
Det skal jo være korrekt, for i princippet kan du da

<a style ="text-decoration: none; font-family: Arial; font-size: 70%" href="$_[$db_url]" target="_blank">$_[$db_title]</a>


Husk nu den ]
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 10:33 #28
Øh, du kan vel afprøve dine Perl scripts lokalt, så du har en chance for
at se hvor syntaksfejlen er ?
Avatar billede kimlarsen Praktikant
30. maj 2002 - 10:35 #29
Utroligt, men jeg får stadigvæk fejl.

Er det ikke korrekt at cgi filer skal uploades binærd ?
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 10:37 #30
næh, det er ikke nødvendigt med Perl-scripts - gør heller ingen skade. Hvis du
får syntaksfejl, så kør dem lokalt først.
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 10:37 #31
BinærT - ikke binærD ...:)
Avatar billede kimlarsen Praktikant
30. maj 2002 - 10:39 #32
Ved jeg desværre ikke hvordan man gør.
Avatar billede kimlarsen Praktikant
30. maj 2002 - 10:40 #33
Ok. 03 i dansk stave og gramma :-)
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 10:41 #34
Man skal bare have Perl på sin maskine (www.activestate.com). Men jeg kan ikke
hjælpe dig med mindre du viser scriptet. Det er fortsat temmlig overflødigt
bare at få at vide at der er "fejl"
Avatar billede kimlarsen Praktikant
30. maj 2002 - 10:43 #35
http://www.rejsebeskrivelser.dk/cgi-bin/topx.cgi

Her ligger scriptet, hvis du vil se det afviklet. Her er det uden ændringer, og som du kan se køre det perfekt.
Ligeså snart jeg laver et eller andet, får jeg den internal server error, hvilket får mig til at tro at der går noget galt i uploaden.
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 10:48 #36
Det er bare små syntaksfejl.... Skal jeg hjælpe vil jeg da godt have en rejse til Angkor for
4 personer..... *gg*
Avatar billede kimlarsen Praktikant
30. maj 2002 - 10:51 #37
Undskyld. Naturligvis skal du have fejlmeddelse og script at se.

#!/usr/bin/perl

eval {
    ($0 =~ m,(.*)/[^/]+,)  && unshift (@INC, "$1"); 
    ($0 =~ m,(.*)\\[^\\]+,) && unshift (@INC, "$1");

    require "admin/links.cfg";         
    require "$db_lib_path/db_utils.pl";
    require "$db_lib_path/links.def";
};
if ($@) {
    print "Content-type: text/plain\n\n";
    print $@;
    exit;
}

&main;

sub main {

    my @data = `tail -$max_new $db_links_name`;
    my $i = 0;

    print "Content-type: text/html\n\n";
print qq|<body bgcolor="#EEEEEE" link="#0000FF" vlink="#0000FF" alink="#0000FF" topmargin="0" leftmargin="0">|;
    print qq|<table width="150">|;
    foreach (@data) {
   
      chomp;
      split /\|/;
      print qq|<tr width="100%"><td width="150" onmouseover="this.style.backgroundColor='#EEEBCB'" onmouseout="this.style.backgroundColor='white'" bgColor="#ffffff"><a style ="text-decoration: none; font-family: Arial; font-size: 70%" href="$_[$db_url" target="_blank">$_[$db_title]</a>
</td></tr>|;
    }
    print "</table></body>";

}

Her har jeg sat ændringerne på font og size ind. Uploader og cmod til 755.

Får en Internal Server Error som du kan se på http://www.rejsebeskrivelser.dk/cgi-bin/topx.cgi
Avatar billede kimlarsen Praktikant
30. maj 2002 - 10:54 #38
Jeg kan nok desværre ikke hjælpe med rejsen, men jeg kan da oprette et dummy spørgsmål til 200 pts. hvis det kan hjælpe ?

Det er træls, at sidde med noget som man gerne vil have lavet pænt og så ikke kan selv. Havde man bare så mange penge at man kunne betale sig fra det, meeeeen man bliver ikke fed af at lave internet sider :-(
Avatar billede kimlarsen Praktikant
30. maj 2002 - 11:00 #39
Prøv lige at chekke linket af igen :-)
Avatar billede kimlarsen Praktikant
30. maj 2002 - 11:03 #40
Ved ikke hvordan jeg fik det til det, men jeg forventer at du afgir et svar, så du kan få dine fortjente point.
Avatar billede erikjacobsen Ekspert
30. maj 2002 - 11:31 #41
Mon ikke det bare var href="$_[$db_url" igen, igen, igen
Avatar billede kimlarsen Praktikant
30. maj 2002 - 11:42 #42
Nope ! Den pillede jeg slet ikke ved.

Jeg tror selv at det var en dataforbindelse mellem min pc og ftp som gjorde knuder !
Avatar billede kimlarsen Praktikant
17. november 2002 - 00:17 #43
Erik Jacobsen - Du har nogle points tilgode !
Lav lige et svar !
Avatar billede erikjacobsen Ekspert
17. november 2002 - 00:40 #44
Tjah, ok, der er nogen der har hugget min 2. plads...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester