Avatar billede jespersahner Nybegynder
19. september 2002 - 18:37 Der er 13 kommentarer og
1 løsning

Eksekvering af URL fra HTML-side (version 2)

Jeg har tidligere stillet dette spm. og fået svar, men jeg kan ikke få det til at virke i denne situation: Jeg har en HTML-side, som består af 2 frames, hvor den venstre igen består af en række select-boxe med efterfølgende eksekvering af et CGI-program ud fra de indtastede valg. Output præsenteres i den højre frame. Jeg har et ønske om at hente forskellige html-sider og vise i min højre frame afhængig af, hvad der er valgt.
Mit CGI-program er blot et program, der er i stand til at skrive HTML-kode. De sider jeg ønsker at hente findes alle i samme mappe som mine frames osv.

Problemet er nu, at hvis jeg lader mit CGI-program skrive koden:

<HTML>
<HEAD>   
<META HTTP-EQUIV="REFRESH"
CONTENT="0;URL=BODY.HTM">
</HEAD>
</HTML>                                                     
...så kan den ikke finde filen BODY.HTM. Det virker ellers fint, hvis jeg "hårdt" sætter koden ind i min højre frame. Jeg kunne måske skrive den fulde URL-adresse, men så mister jeg jo noget dynamik, hvis jeg flytter mine sider rundt efterfølgende.

Hvordan løser man dette?
Avatar billede Slettet bruger
19. september 2002 - 18:45 #1
Udskriv følgende i start af head:

<script>
self.location.href = "body.htm";
</script>

Eller du kan lade JavaScript gøre hele arbejdet med selectboksen.
Avatar billede jespersahner Nybegynder
19. september 2002 - 18:51 #2
Dit forslag virker desværre ikke i mit tilfælde. Hvorfor kan jeg ikke gennemskue. Du har nok ret i, at jeg blot kunne lade arbejdet udføre i selectboxen, men jeg er stadig nysgerrig efter at få CGI-løsningen til at virke. Det kunne jo være, at siden som skulle præsenteres ikke kun afhang af select-valget men ydermere af et eller andet resultat af CGI-programmet
Avatar billede Slettet bruger
19. september 2002 - 18:53 #3
Hvis mit forslag ikke virker, så har jeg ingen andre forslag. Hvis CGI-scriptet virkeligt udskriver ren HTML, så burde ovenstående virke uden problemer! Smid evt. et link.
Avatar billede jespersahner Nybegynder
19. september 2002 - 19:11 #4
Koden, der dannes af CGI-programmet, er som følger:

<HTML>
<HEAD>
<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=BODY.HTM">
</HEAD>
</HTML>

Problemet er, at HTML-koden faktisk virker fint, hvis man "hårdt" kopierer den til en anden side og åbner denne, men når CGI-programmet danner HTML-koden, virker det ikke. Det virker heller ikke, selv om jeg inkluderer dit script, desværre. Jeg gætter på, at det handler om, at CGI-programmet afleverer resultatet i en "dynamisk" side (højre frame), hvorfra man ikke kender adressen/mappen, hvor "BODY.HTM" findes. Der ledes derfor måske efter "BODY.HTM" et helt andet sted.
Avatar billede sukos Juniormester
19. september 2002 - 19:36 #5
Hvis BODY.htm ligger i roden af din side, kan du bruge:
<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=/BODY.HTM">
Men du er sikker på at BODY.HTM hedder så'n, og ikke f.eks. BODY.htm eller body.html m.m.?
Avatar billede jespersahner Nybegynder
19. september 2002 - 19:45 #6
Jeg er 100% sikker på, at filen er den rigtige. Som jeg skriver, har jeg prøvet hårdt at skrive koden i en anden fil, hvorefter det virker. Det må handle om, at CGI-programmet så at sige ikke ved, hvor roden er eller peger på en anden adresse (?) Hvis det kan være en hjælp, får jeg flg. fejlmeddelelser (afhængig af om jeg benytter "/" foran filnavnet):
505 scriptnotfound (uden "/")
404 multifail (med "/")
Avatar billede jespersahner Nybegynder
19. september 2002 - 19:50 #7
Ups, sorry, fejlene hedder:
500 scriptnotfound (uden "/")
404 multifail (med "/")
Avatar billede sukos Juniormester
19. september 2002 - 20:05 #8
Du skriver en forkert sti til CGI'en!
Avatar billede jespersahner Nybegynder
20. september 2002 - 09:46 #9
Sukos: Det forstår jeg ikke. Hvis jeg inkluderer en forsinkelse på f.eks. 10 sek., kan jeg se, at mit CGI-program faktisk returnerer det rigtige i min højre frame (højreklikke, vis kilde), men efter 10 sek. når siden så faktisk skal vises, går det galt. Mit CGI-program bliver derfor kørt og afleverer i princippet den rigtige HTML-kode, så vidt jeg kan se.
Avatar billede sbm Nybegynder
20. september 2002 - 13:38 #10
Du skriver at dine html-dokumenter ligger i samme mappe som dine frames, men gør dit cgi-script også det? Eller forsøger den at finde dit body.htm i den mappe som dit cgi-script ligger. Hvis de ligger i to forskellige mapper, kan jeg godt forstå den ikke kan finde den. Så skal du angive dit html-dokuement med sti foran.

Hvis dit html-dokument f.eks. ligger i www.dinserver.dk/mitsite/html/body.htm
skal du angive din meta som
<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=/mitsite/html/body.htm">
Avatar billede Slettet bruger
20. september 2002 - 14:15 #11
Prøv at få CGI til at udskrive den absolutte sti til filen. Hvis det virker, så er det din relative sti-angivelse, den er gal med!
Avatar billede jespersahner Nybegynder
20. september 2002 - 17:10 #12
Mit CGI-script ligger i samme mappe som de øvrige filer. Jeg er dog ikke så begejstret for en løsning med angivelse af den absolutte sti, da jeg så ikke kan flytte rundt på filerne efterfølgende. Jeg takker foreløbig for jeres ihærdighed :-)
Avatar billede sbm Nybegynder
20. september 2002 - 18:25 #13
Ligger det et sted hvor man kan prøve det af? Det kan være der er et eller andet du har glippet i farten....
Avatar billede Slettet bruger
20. september 2002 - 19:28 #14
Jeg er godt klar over, at du ikke er glad for at bruge absolutte stier, men prøv det lige en gang, for at se, om det virker.
Og smid et link, som sbm siger.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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