Avatar billede tille Nybegynder
25. november 2006 - 00:36 Der er 9 kommentarer og
1 løsning

Anden mulighed end IFrame

Hej

Jeg prøver at få noget indhold fra min gamle side ind i min nye side

indholdet kommer fra en gammel cgi applikation med en masse selvudviklet kodet til styring af fodboldklubben.

Dette vil jeg fremvise i min nye asp løsning

ASP løsningen er et CMS der allerede er lavet, men mangler en masse moduler der er lavet i den gamle cgi løsning.

disse vil jeg så fremvise, ved hjælp af den gamle kode, indtil jeg får dem lavet.

jeg har tænkt på at lave nogle IFrame men har i bedre ideer ?
Avatar billede keysersoze Guru
25. november 2006 - 11:07 #1
frames og iframes er umiddelbart eneste mulighed for at vise flere sider samtidig for klienten i et vindue - men for at svare om der findes bedre løsning skal du nok fortælle lidt mere om den cgi-ting og din gamle kode for måske kan du bare kaste det ind i en tabel på siden.
Avatar billede tille Nybegynder
25. november 2006 - 17:26 #2
det er den her vi snakker om

www.olstykke-fodbold.dk

lad os bare starte med forsiden.

Det jeg vil, er at lave header og menu i cms'et og så lave en iframe med
alle nyhedsbrevene, som jeg kan få fra min cgi, som en tabel.

Jeg havde troet det kunne gøres med noget SSI EXEC, men det kan men ikke i asp har jeg fundet ud af

altså leder jeg efter en måde hvorpå jeg kan lade min gamle cgi kode levere indholdet, mens menuer og det mere statiske leveres af cms'et

Med tiden ville jeg så udvikle de gamle moduler i asp så det hele var asp

var det den slags info du mente ?
Avatar billede keysersoze Guru
26. november 2006 - 18:49 #3
jah - den ser måske lidt tricky ud, specielt hvis resultatet leverer <body> osv med også. Nu er cgi ikke min stærke side - men du skriver at du har forsøgt med SSI EXEC, tænker du her på almindelig SSI (altså include file/include virtual) eller?
Avatar billede tille Nybegynder
27. november 2006 - 10:04 #4
Jeg kan sagtens rette min cgi så den kun leverer en <table>, det er også det jeg vil gøre.

det ssi jeg har forsøgt kan illustreres ved dette

jeg har lavet to eksempler:

http://www.olstykke-fodbold.dk/ssitest/TEST.ASP
og
http://www.olstykke-fodbold.dk/ssitest/ssi_exec.shtml

koden til de to er nøjagtig ens og ser således ud:

----------------------
<html>
<title>Test</title>
<head>
</head>
<body>
<h1>Hej en lille test</h1>
<br>Include af cgi:<br>
<br><!-- #exec cgi="/cgi-bin/ofcindhold.cgi?type=forside" -->
<br>Include af fil:<br>
<br><!--#include file="address.htm"-->
</body>
</html>
-----------------------

i .asp udgaven vises min cgi ikke, og det fandt jeg ud af på msdn, at var naturligt nok, for exec cgi virker ikke i asp.

Så meget for den mulighed, derfor er jeg ude i f.eks. at lave en <iframe>.
Avatar billede keysersoze Guru
27. november 2006 - 10:39 #5
jah - så har jeg heller ikke rigtig andre forslag... det skulle da lige være hvis du kan lave en shtml-fil hvori du har din exec og du så includerer den shtml-fil i dit asp?
Avatar billede tille Nybegynder
27. november 2006 - 11:02 #6
ja den har jeg også prøvet, det virker heller ikke :-)

tak for forslagene, jeg må lave det som iframe, og så se at få skrevet de moduler i ren asp.
Avatar billede keysersoze Guru
27. november 2006 - 12:03 #7
ja - sry, så har jeg ikke rigtig mere at komme med :(
Avatar billede ldanielsen Nybegynder
27. november 2006 - 12:51 #8
Det lyder som om du har lidt check på det, så jeg tror det du mangler er WinHttp.

Med det kan du serverside lave et http-kald til din cgi, og hente response'en. WinHttp er beskrevet på MSDN:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winhttp/http/winhttp_start_page.asp

Et eksempel:
Dim objWinHttp, strReply
Set objWinHttp = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
objWinHttp.Open "GET", "http://www.dom.ext/cgi-bin/ofcindhold.cgi", False
objWinHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objWinHttp.setRequestHeader "Authorization", "Basic " & Base64Encode("myUser:myPass")
objWinHttp.Send("type=forside")
strReply = objWinHttp.responseText
Set objWinHttp = Nothing

Det behøver ikke være så avanceret, det afhænger at situationen, men nu har du set det.
Avatar billede tille Nybegynder
27. november 2006 - 13:14 #9
super !!!

det virker sgu

http://www.olstykke-fodbold.dk/ssitest/winhttp_TEST.ASP

Der er dog et eller andet mystisk med parametrene, men det skyldes sikkert min måde at kalde det på i CGI ?

Jeg kan kun få parametrene til at virke hvis jeg også sætter dem i 'GET'

Ikke noget problem, så gør jeg bare det.

Dim objWinHttp, strReply
Set objWinHttp = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
objWinHttp.Open "GET", "http://www.olstykke-fodbold.dk/cgi-bin/ofcindhold.cgi?type=forside", False
objWinHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objWinHttp.Send("type=forside")
strReply = objWinHttp.responseText
Set objWinHttp = Nothing
Response.Write strReply

lav lige et svar så du kan få point

Tak igen, det løftede lige mit humør gevaldigt
Avatar billede ldanielsen Nybegynder
27. november 2006 - 14:15 #10
Man kan jo sige at man kan gøre en af delene, da GET jo netop er en extra streng på URL'en. Du kan jo så lade parantesen være tom i Send kaldet.

Måske er det noget med Content-type, charset eller en anden header der ikke er korrekt ...

WinHttp er meget anvendelig, til at kalde scripts, hente data m.m. alt sammen serverside. Det er jo en http klient, lig en internetbrowser. WinHttp er tilgængelig fra mange sprog, den er ikke specifik for ASP/VBScript.
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