Avatar billede jamfighter Nybegynder
06. juni 2003 - 19:44 Der er 25 kommentarer og
2 løsninger

If. the else

Hejsa.
Jeg har oprettet variablen mode, som skal fortælle siden, hvilken mode den skal starte i.
Jeg har så også en loginfrm, som sender data til en anden side, som så skal redirecte til index.asp?mode=loggedin hvis man bliver godkendt... men det vil fandme ikke virke...
Plz hjælp

source er som følgende:
        <%
        if mode = "" then
        %>
        <!--#include file="includes/start.txt" -->
        <%
        else
        %>
        <!--#include file="includes/" & mode &".txt" -->
        <%
            if mode <> login or loggedin then
            <!--#include file="includes/404.txt" -->
            end if
        end if
        %>
Avatar billede -master-d- Nybegynder
06. juni 2003 - 19:46 #1
Muligvis skal den laves sådan her.

<%
        if mode = "" then
        %>
        <!--#include file="includes/start.txt" -->
        <%
        else
        %>
        <!--#include file="includes/" & mode &".txt" -->
        <%
            if mode <> "login" or mode <> "loggedin" then
            <!--#include file="includes/404.txt" -->
            end if
        end if
        %>
Avatar billede ellebaek Nybegynder
06. juni 2003 - 19:47 #2
<%
        if mode = "" then
        %>
        <!--#include file="includes/start.txt" -->
        <%
        else
        %>
        <!--#include file="includes/" & mode &".txt" -->
        <%
            if mode <> "login" or mode <> "loggedin" then
            <!--#include file="includes/404.txt" -->
            end if
        end if
        %>
Avatar billede eagleeye Praktikant
06. juni 2003 - 19:48 #3
Man kan ikke lave Dynamisk includes i ASP.
Avatar billede ellebaek Nybegynder
06. juni 2003 - 19:49 #4
<%
        if mode = "" then
        %>
        <!--#include file="includes/start.txt" -->
        <%
        else
        %>
        <!--#include file="includes/" & mode &".txt" -->
        <%
            if mode <> "login" or mode <> "loggedin" then
%>
            <!--#include file="includes/404.txt" -->
<%
            end if
        end if
        %>

Sådan her selvfølgelig...
Avatar billede tuctoh Nybegynder
06. juni 2003 - 19:49 #5
<%
        if mode = "" then
        server.execute("includes/start.txt")
        else
        server.execute("includes/" & mode &".txt")
            if mode <> login or loggedin then%>
            <!--#include file="includes/404.txt" -->
          <% end if
        end if
        %>


Du kan med en direkte inklude ikke bruge parametre, derfor skal du bruge server.execute...
Avatar billede eagleeye Praktikant
06. juni 2003 - 19:50 #6
Så må du bruge 

Server.Execute("includes/" & mode & ".txt")


men jeg ved ikke om Server.Execute virker på txt filer eller så kig her:
http://www.asp101.com/articles/michael/dynamicincludes/default.asp
Eller:
http://www.4guysfromrolla.com/webtech/042602-1.shtml
Avatar billede -master-d- Nybegynder
06. juni 2003 - 19:53 #7
Eagleye fik lige mig til at tænke mig om, en <!--#include file="fil.txt" --> vil blive inkluderet uanset om du bruger en if/else løsning.

Jeg er heller ikke sikker på at Server.Execute("fil.txt") kan virke, men du kan jo prøve.
Avatar billede tuctoh Nybegynder
06. juni 2003 - 19:54 #8
<%
        if mode = "" then
        %>
        <!--#include file="includes/start.txt" -->
        <%
        else
        %>
  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

  Set objText = objFSO.OpenTextFile(Server.MapPath("includes/" & mode &".txt"))

response.write objText.ReadAll

  objText.Close
  Set objText = Nothing
  Set objFSO = Nothing

        <%
            if mode <> "login" or mode <> "loggedin" then
%>
            <!--#include file="includes/404.txt" -->
<%
            end if
        end if
        %>



baseret på eagleeyes svar
Avatar billede tuctoh Nybegynder
06. juni 2003 - 19:54 #9
master, ja filen bliver inkluderet ligegyldigt hvad.
Avatar billede jamfighter Nybegynder
06. juni 2003 - 19:55 #10
tuctoh:
din metode virkede halvejs.
nu vil den gerne include start.txt, men der ker ikke noget når jeg ændrer mode til login, eller til et helt andet navn...
Avatar billede eagleeye Praktikant
06. juni 2003 - 19:57 #11
Ja den includres men udføre kun hvis koden komme igenne <!--include tingen, begger filer skal kunen findes for det virker men kun den ene kommer med.

<% if mode = "1" then %>
  <!--#include file="includes/1.txt" -->
<% else %>
  <!--#include file="includes/2.txt" -->
<% end if %>
Avatar billede tuctoh Nybegynder
06. juni 2003 - 19:57 #12
var det mit første eller andet forslag du forsøgte med der?
Avatar billede eagleeye Praktikant
06. juni 2003 - 19:57 #13
Var det utydeligt nok ;)
Avatar billede jamfighter Nybegynder
06. juni 2003 - 19:59 #14
jeg har egentlig prøvet begge
Avatar billede tuctoh Nybegynder
06. juni 2003 - 20:00 #15
får du nogle direkte fejl ved de andre, eller hvad? De burde nu engang virke
Avatar billede eagleeye Praktikant
06. juni 2003 - 20:02 #16
%>  i linjen over
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
fjernes og
<% i linjen efter
Set objFSO = Nothing
fjernes
Avatar billede jamfighter Nybegynder
06. juni 2003 - 20:03 #17
i kan jo evt lige se selv her...

http://213.237.94.58/

det er siden, start.txt indeholder i øjeblikket ikke andet end "hejsa", og og login hedder egentlig opret, så når i trykker oppe til højre (opret bruger) skulle den gerne skrive asdasdasd hvor der står hejsa.
Jeg ved egentlig ikke om den unloader start.txt
Avatar billede eagleeye Praktikant
06. juni 2003 - 20:09 #18
og du husker at hendte mode sådan her:

mode = Request.QueryString("mode")
Avatar billede jamfighter Nybegynder
06. juni 2003 - 20:12 #19
det havde jeg ikke, men det vil stadigvæk ikke virke som det skal...
Avatar billede jamfighter Nybegynder
06. juni 2003 - 20:13 #20
eller det vil sige... den inkludere 404.txtx hele tiden nu
Avatar billede eagleeye Praktikant
06. juni 2003 - 20:15 #21
Ja for den includes hvis mode er for forskllige for enten "login" eller "loggedin":
if mode <> "login" or mode <> "loggedin" then

Hvornår skulle 404 filen vises ? i forhold til den bare forsøger ukritisk at vise indholdet af det man skriver efter mode?
Avatar billede jamfighter Nybegynder
06. juni 2003 - 20:17 #22
altså... det jeg vil have er at den inkludere filer alt efter hvilket link man trykker på.
hvis folk så slev finder på at skrive en url, som der ikke findes en fil til, så skulle den redirecte til 404.txt som siger at siden ikke findes...
Avatar billede eagleeye Praktikant
06. juni 2003 - 20:21 #23
Ok så prøv :

Er det sådan her du mener :


<%
    mode = Request.QueryString("mode")
    if mode = "" then
    %>
        <!--#include file="includes/start.txt" -->
    <%
    else
      Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
      fil = Server.MapPath("includes/" & mode &".txt"
      if objFSO.FileExists(fil) then
        Set objText = objFSO.OpenTextFile(fil))
        response.write objText.ReadAll
        objText.Close
        Set objText = Nothing
      else
      %>
          <!--#include file="includes/404.txt" -->
      <%
      end if
      Set objFSO = Nothing
    end if
%>
Avatar billede jamfighter Nybegynder
06. juni 2003 - 20:25 #24
den brokker sig over fil = Server.MapPath("includes/" & mode &".txt"
har prøvet at sige Dim fil, uden held
Avatar billede eagleeye Praktikant
06. juni 2003 - 20:27 #25
Ja men jeg har da også glemt en )  :)

fil = Server.MapPath("includes/" & mode &".txt")
Avatar billede jamfighter Nybegynder
06. juni 2003 - 20:40 #26
ok... jeg ved i sikkert er trætte af mig, men jeg har fået et nyt problem.

eagleeye, jeg brugte din sidste metode, det virker nu. source:
<%
    mode = Request.QueryString("mode")
    if mode = "" then
    %>
        <!--#include file="includes/main/start.txt" -->
    <%
    else
      Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
      fil = Server.MapPath("includes/main/" & mode &".txt")
      if objFSO.FileExists(fil) then
        Set objText = objFSO.OpenTextFile(fil)
        response.write objText.ReadAll
        objText.Close
        Set objText = Nothing
      else
      Response.Redirect("index.asp?mode=404")
      end if
      Set objFSO = Nothing
    end if
%>

Som du kan se, har jeg lavet en redirect istedet.. og det virker som det skal :D
Jeg har lavet næsten hele min side som includes, og nu kan den også include filer der findesi andre dir.
Den skal includere fra includes/main, men kan også include filer fra /includes.
Hvorfor?
Avatar billede jamfighter Nybegynder
06. juni 2003 - 20:43 #27
ikke noget alligevel... fandt fejlen..
ER jo bare et menneske...

Mange tak for hjælpen, og jeg tror at eagle eye får pointene...
Håber det er i orden med jer andre.
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