Avatar billede webcreator Nybegynder
26. april 2003 - 20:30 Der er 21 kommentarer og
2 løsninger

Variabel forbliver tom ved redirect - ASP

Hej.

Jeg har et problem med min variabel. Jeg kan sagtens hente variablen og udskrive den med response.write. Men når jeg submitter min form, og derved redirecter med variablen, så er den tom når jeg kommer til næste side. Nogen der kan se hvad der er galt ? :

<%@ Language="VBScript"%>

<!-- #INCLUDE FILE="fileupload.inc" -->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AnimeReview.DK</title>
<link rel="stylesheet" type="text/css" href="style/index.css">
</head>

<body topmargin="0" leftmargin="0" background="bg.jpeg">

<center>
<table width="760" border="1" cellspacing="0" bordercolor="#000000">
<tr>
  <td height="45" valign="top" style="background-image:url(logo.jpeg)">.</td>
</tr>
<tr>
  <td height="20" valign="top" bgcolor="#006393">

<!-- Hovedmenu -->
  <table width="760">
    <tr>
    <td width="650">
      <a href="index.asp" class="menu">|Index| </a>
      <a href="anime.asp" class="menu">|Anime| </a>
      <a href="oversigt.asp?gen=*" class="menu">|Reviews| </a>
      <a href="search.asp" class="menu">|Søg| </a>
      <a href="lan.asp" class="menu">|LANs| </a>
      <a href="kontakt.asp" class="menu">|Kontakt| </a>
    </td>
    <td width="110">
      <a href="logon.asp" class="menu">|Login| </a>
      <a href="tilmeld.asp" class="menu">|Tilmeld| </a>
      </td>
    </tr>
    </table>
<!-- Slut på hovedmenu -->

  </td>
</tr>
<tr>
  <td height="540" valign="top" bgcolor="#FFFFFF" style="background-image:url(bg-girl.jpeg); background-repeat: no-repeat; background-position: right top; background-attachment: fixed">

<!-- ASP Kode -->

<br>

<%

' Værdier fra URLen hentes ind i en variabel, og udskrives efterfølgende
response.write request.querystring("uds")
var=request.querystring("brg")

'*************************************
'**** Test af FileUpload funktion ****
'****                            ****
'**** Upload .gif eller .jpg      ****
'**** billede til mappen /upload  ****
'*************************************

    'Skal formen vises?
    If Request.ServerVariables("REQUEST_METHOD") <> "POST" Then


%>

<!-- Slut på ASP Kode -->

<!-- Uploadformular -->

<div class="b3">Vælg et billede</div>

<br>

<Form ENCTYPE="multipart/form-data" action="uploadgfx.asp" method="post">
<table cellspacing="0" cellpadding="0">
<tr>
  <td width="100"><div class="b2">Vælg fil</div></td>
  <td width="300"><INPUT NAME="fileupload" TYPE="file" style="WIDTH: 180px; HEIGHT: 23px"></td>
</tr>
<tr>
  <td width="100"></td>
  <td width="300"><INPUT NAME="Action" TYPE="submit" VALUE="Upload" style="WIDTH: 180px; HEIGHT: 23px"></td>
</tr>
</table>
</FORM>

<br>

<div class="b2">Bemærk venligst, at kun GIF og JPG filer bliver accepteret - 20 KB max.</div>

<!-- ASP Kode -->

<%
    Else
        Dim intFileUpload, strContentType, strFilename, intFileTotalBytes

        intFileUpload = FileUpload("upload/", 20000, Array("image/gif", "image/jpeg", "image/pjpeg"), Array("gif", "jpg"), strContentType, strFilename, intFileTotalBytes)

        If intFileUpload = 0 Then

response.redirect ("edit.asp?fil="& strFilename & "&usr="& var)
        Else
            Response.write "<br><div class=b3>Der opstod en fejl under upload!</div><div class=b2><br>"
            Response.Write "Fejl nr: " & intFileUpload & "<BR>"
            Response.Write "Filnavn: " & strFilename & "<BR>"
            Response.Write "Filtype: " & strContentType & "<BR></div>"
            Response.Write "Filstørrelse: " & intFileTotalBytes & "<BR><br><a href=uploadgfx.asp> <- Tilbage</a>"
        End If
    End If
%>

<!-- Slut på ASP Kode -->

<!-- Slut på uploadformular -->

  </td>
</tr>
</table>
</center>

</body>
</html>
Avatar billede amd Nybegynder
26. april 2003 - 20:35 #1
En variable forbliver ikke. Så skal du bruge sessions

eks.
session("id1") = "98174"

response.write session("id1")

og så bliver det i hukommelsen
Avatar billede webcreator Nybegynder
26. april 2003 - 20:40 #2
Det prøver jeg lige :)
Avatar billede webcreator Nybegynder
26. april 2003 - 20:42 #3
Hm, tror ikke jeg er helt med. Skal jeg bare erstatte : var=request.querystring("brg")  med  var=response.write session("id1")  =
Avatar billede amd Nybegynder
26. april 2003 - 20:44 #4
så skal du vel skrive:
session("var") = den værdi du vil give den...
og når du så trækker den frem igen hedder den stadig session("var")
Avatar billede webcreator Nybegynder
26. april 2003 - 20:47 #5
Virker ikke. Min kode ser nu således ud :
-----------------------------------------

<%@ Language="VBScript"%>

<!-- #INCLUDE FILE="fileupload.inc" -->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>AnimeReview.DK</title>
<link rel="stylesheet" type="text/css" href="style/index.css">
</head>

<body topmargin="0" leftmargin="0" background="bg.jpeg">

<center>
<table width="760" border="1" cellspacing="0" bordercolor="#000000">
<tr>
  <td height="45" valign="top" style="background-image:url(logo.jpeg)">.</td>
</tr>
<tr>
  <td height="20" valign="top" bgcolor="#006393">

<!-- Hovedmenu -->
  <table width="760">
    <tr>
    <td width="650">
      <a href="index.asp" class="menu">|Index| </a>
      <a href="anime.asp" class="menu">|Anime| </a>
      <a href="oversigt.asp?gen=*" class="menu">|Reviews| </a>
      <a href="search.asp" class="menu">|Søg| </a>
      <a href="lan.asp" class="menu">|LANs| </a>
      <a href="kontakt.asp" class="menu">|Kontakt| </a>
    </td>
    <td width="110">
      <a href="logon.asp" class="menu">|Login| </a>
      <a href="tilmeld.asp" class="menu">|Tilmeld| </a>
      </td>
    </tr>
    </table>
<!-- Slut på hovedmenu -->

  </td>
</tr>
<tr>
  <td height="540" valign="top" bgcolor="#FFFFFF" style="background-image:url(bg-girl.jpeg); background-repeat: no-repeat; background-position: right top; background-attachment: fixed">

<!-- ASP Kode -->

<br>

<%

' Værdier fra URLen hentes ind i en variabel, og udskrives efterfølgende
response.write request.querystring("uds")
'var=request.querystring("brg")
session("var") = request.querystring("brg")


'*************************************
'**** Test af FileUpload funktion ****
'****                            ****
'**** Upload .gif eller .jpg      ****
'**** billede til mappen /upload  ****
'*************************************

    'Skal formen vises?
    If Request.ServerVariables("REQUEST_METHOD") <> "POST" Then


%>

<!-- Slut på ASP Kode -->

<!-- Uploadformular -->

<div class="b3">Vælg et billede</div>

<br>

<Form ENCTYPE="multipart/form-data" action="uploadgfx.asp" method="post">
<table cellspacing="0" cellpadding="0">
<tr>
  <td width="100"><div class="b2">Vælg fil</div></td>
  <td width="300"><INPUT NAME="fileupload" TYPE="file" style="WIDTH: 180px; HEIGHT: 23px"></td>
</tr>
<tr>
  <td width="100"></td>
  <td width="300"><INPUT NAME="Action" TYPE="submit" VALUE="Upload" style="WIDTH: 180px; HEIGHT: 23px"></td>
</tr>
</table>
</FORM>

<br>

<div class="b2">Bemærk venligst, at kun GIF og JPG filer bliver accepteret - 20 KB max.</div>

<!-- ASP Kode -->

<%
    Else
        Dim intFileUpload, strContentType, strFilename, intFileTotalBytes

        intFileUpload = FileUpload("upload/", 20000, Array("image/gif", "image/jpeg", "image/pjpeg"), Array("gif", "jpg"), strContentType, strFilename, intFileTotalBytes)

        If intFileUpload = 0 Then

response.redirect ("edit.asp?fil="& strFilename & "&usr="& session("var"))
        Else
            Response.write "<br><div class=b3>Der opstod en fejl under upload!</div><div class=b2><br>"
            Response.Write "Fejl nr: " & intFileUpload & "<BR>"
            Response.Write "Filnavn: " & strFilename & "<BR>"
            Response.Write "Filtype: " & strContentType & "<BR></div>"
            Response.Write "Filstørrelse: " & intFileTotalBytes & "<BR><br><a href=uploadgfx.asp> <- Tilbage</a>"
        End If
    End If
%>

<!-- Slut på ASP Kode -->

<!-- Slut på uploadformular -->

  </td>
</tr>
</table>
</center>

</body>
</html>
Avatar billede oasen Nybegynder
26. april 2003 - 21:32 #6
I stedet for bare at paste en masse ligegyldig HTML-kode og sige, det "ikke virker", skulle du måske forsøge at specificere problemstillingen en anelse.

- Er din querystring tom?
- Er din sessionvariabel tom?
- Får du en fejlmeddelelse - i så fald hvilken?
- Andet?
Avatar billede burningice Nybegynder
27. april 2003 - 00:20 #7
oasen>> det er da ellers så hyggeligt at se på :)
Avatar billede oasen Nybegynder
27. april 2003 - 04:26 #8
Jeg synes, det er lidt til grin, at man ikke orker at gøre en lille indsats selv for at blive hjulpet. Men det er selvfølgelig nemmere bare at smide hele møget herind og håbe på, det ligger klart i skønneste orden dagen efter...
Avatar billede webcreator Nybegynder
27. april 2003 - 13:07 #9
Oasen : Problemer et netop, at jeg har svært ved at indskrænke problemet. Men jeg må indrømme at jeg godt kunne have klare mig med mindre kode ved sidste "paste"ing.

Men helt ærligt - har du ikke bedre ting at tage dig til, end at sidde og svine andre folk til ? Det er muligt at du styre ASP helt og aldeles uhæmmet, men det giver du sq da ikke ret til at spamme mit spørgsmål til (hvilket også gælder for dig, CyberFessor). Din første kommentar var rigeligt, Oasen.
Avatar billede ellebaek Nybegynder
27. april 2003 - 14:31 #10
ret dit asp-tag hvor du finder ud af om siden skal vise upload formen eller ej til dette:
<%

' Værdier fra URLen hentes ind i en variabel, og udskrives efterfølgende



'*************************************
'**** Test af FileUpload funktion ****
'****                            ****
'**** Upload .gif eller .jpg      ****
'**** billede til mappen /upload  ****
'*************************************

    'Skal formen vises?
    If Request.ServerVariables("REQUEST_METHOD") <> "POST" Then
response.write request.querystring("uds")
session("var") = request.querystring("brg")

%>

Så får du variablen brg med i dit videre forløb...
/Ellebæk
Avatar billede oasen Nybegynder
27. april 2003 - 14:48 #11
Det er ikke min hensigt at spamme tråden. Jeg stiller blot nogle ledende spørgsmål, så jeg har lettere ved at give dig et korrekt svar.
Men nu kan du jo lige prøve Ellebæks forslag.

Bare husk at værdien af sessionvariablen først er tilgængelig ved anmodning om en ny side.
Avatar billede amd Nybegynder
27. april 2003 - 14:50 #12
Hvad er det da for noget ævl??
Du kan da kalde sessions når du vil!


>>Men helt ærligt - har du ikke bedre ting at tage dig til, end at sidde og svine andre folk til ?

Svine folk til og svine folk til, det er jo som man tager det
Avatar billede oasen Nybegynder
27. april 2003 - 15:37 #13
Ja, du kan kalde dem, når du vil, men hvis du kalder den under samme request, hvor du satte den, vil den ingen værdi antage.
Avatar billede amd Nybegynder
27. april 2003 - 15:40 #14
øhh undskyld klaphat, men hvis bare man har lidt fornuft mellemørene kan man nok regne det ud!
Avatar billede ellebaek Nybegynder
27. april 2003 - 15:41 #15
det var heller ikke det der var fejlen i scriptet...

grunden til det ikke virkede før var at webcreator havde sat tjekket af querystringen ind hver gang siden kørtes, men når der blev trykket på upload eller hvad det nu er der står, så vil denne querystring ikke findes, ¨så derfor ville sessionen antage værdien "" hver anden gang. Ved at sætte den ned i den del af siden der kun vises hvis der ikke er trykket send, virker det...
Avatar billede amd Nybegynder
27. april 2003 - 15:42 #16
Undskyld... var ik i dette vindue den skulle ha været :-D
Du kan godt kalde en session på samme side
Avatar billede ellebaek Nybegynder
27. april 2003 - 15:45 #17
men webcreator-> Du kan også få dine variable med på denne måde i stedet..
<Form ENCTYPE="multipart/form-data" action="uploadgfx.asp?brg=<%=request.querystring("brg")%>&uds=<%=request.querystring("uds")%>
" method="post">
<table cellspacing="0" cellpadding="0">
<tr>
  <td width="100"><div class="b2">Vælg fil</div></td>
  <td width="300"><INPUT NAME="fileupload" TYPE="file" style="WIDTH: 180px; HEIGHT: 23px"></td>
</tr>
<tr>
  <td width="100"></td>
  <td width="300"><INPUT NAME="Action" TYPE="submit" VALUE="Upload" style="WIDTH: 180px; HEIGHT: 23px"></td>
</tr>
</table>
</FORM>
Avatar billede oasen Nybegynder
27. april 2003 - 15:55 #18
Siden skal først "unloades" fra serveren, så vidt jeg er orienteret.
Men hvis du kan dokumentere det modsatte, bøjer jeg mig gerne.
Avatar billede ellebaek Nybegynder
27. april 2003 - 15:58 #19
kan i ikke tage denne diskution et andet sted ?
Avatar billede amd Nybegynder
27. april 2003 - 16:04 #20
<%
session("test") = "Ja, det virker"
response.write session("test")
%>

så udskriver den sessionen ganske glimrende! du kan jo selv prøve!
Avatar billede oasen Nybegynder
27. april 2003 - 16:12 #21
Ja, men jeg er ret overbevist om, at den på det tidspunkt betragter sessionvariablen som en almindelig variabel.

Hvis du vil lave et session/cookie-check hos en bruger, kræver det som minimum 2 sider.
Avatar billede oasen Nybegynder
27. april 2003 - 16:14 #22
Jeg opretter et spørgsmål her på E, så lad os høre, hvad de andre siger.
Avatar billede oasen Nybegynder
27. april 2003 - 16:23 #23
http://www.eksperten.dk/spm/345362 (Undskyld for det sidste spam)
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