/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Problem med Session variabel og betingels~
Fra : john wengel


Dato : 18-09-06 14:18

Hej NG.

Jeg har problemer med at bruge en sessionvariabel i en
betingelsessætning.

F.eks.

' værdien af sessionvariablen indlæses

cartmaxused=session("cartmaxused")

' værdien sammenlignes med en brugerindtastning

if request.form("slet") > cartmaxused then

response.redirect("fyda.asp")

end if

Hvad er der forkert i ovenstående ??

På forhånd tak


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jens Gyldenkærne Cla~ (18-09-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-09-06 14:28

john wengel skrev:


> ' værdien af sessionvariablen indlæses
>
> cartmaxused=session("cartmaxused")


Hvilken type værdi har du i din session (hvordan ser det ud når du
gemmer session-variablen?


> if request.form("slet") > cartmaxused then


Formentlig går det galt fordi du sammenligner et tal (din session-
variabel) med en tekst (dit form-request). Alt hvad du henter via
Request.Form (og request.querystring) har typen variant - der
normalt tolkes som tekst. Hvis du sammenligner det med en talværdi,
får du ikke noget brugbart resultat (42 <> "42").
--
Bolig søges. Andel eller leje i Emdrup, Nordvest, Nørrebro, Søborg
eller Brønshøj, max 6000 pr. måned.
Kontakt pr. mail - nospam(at)gyros.dk
Jens Gyldenkærne Clausen

john wengel (18-09-2006)
Kommentar
Fra : john wengel


Dato : 18-09-06 14:34

Jens GyldenkærneClausen wrote in
dk.edb.internet.webdesign.serverside.asp:
> john wengel skrev:
>
>
> > ' værdien af sessionvariablen indlæses
> >
> > cartmaxused=session("cartmaxused")
>
>
> Hvilken type værdi har du i din session (hvordan ser det ud når du
> gemmer session-variablen?
>
>
> > if request.form("slet") > cartmaxused then
>
>
> Formentlig går det galt fordi du sammenligner et tal (din session-
> variabel) med en tekst (dit form-request). Alt hvad du henter via
> Request.Form (og request.querystring) har typen variant - der
> normalt tolkes som tekst. Hvis du sammenligner det med en talværdi,
> får du ikke noget brugbart resultat (42 <> "42").
> --
> Bolig søges. Andel eller leje i Emdrup, Nordvest, Nørrebro, Søborg
> eller Brønshøj, max 6000 pr. måned.
> Kontakt pr. mail - nospam(at)gyros.dk
> Jens Gyldenkærne Clausen

Tak for et hurtigt svar.

Jeg må finde en anden løsning.

mvh
JW

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (18-09-2006)
Kommentar
Fra : Jørn Andersen


Dato : 18-09-06 18:14

On 18 Sep 2006 13:33:42 GMT, john wengel <jwnospam@svend-es.dk> wrote:

>Jens GyldenkærneClausen wrote in
>dk.edb.internet.webdesign.serverside.asp:
>> john wengel skrev:
>>
>> > ' værdien af sessionvariablen indlæses
>> > cartmaxused=session("cartmaxused")
>>
>> > if request.form("slet") > cartmaxused then
>>
>> Formentlig går det galt fordi du sammenligner et tal (din session-
>> variabel) med en tekst (dit form-request). Alt hvad du henter via
>> Request.Form (og request.querystring) har typen variant - der
>> normalt tolkes som tekst. Hvis du sammenligner det med en talværdi,
>> får du ikke noget brugbart resultat (42 <> "42").

>
>Tak for et hurtigt svar.
>
>Jeg må finde en anden løsning.

Løsningen er såmænd meget enkel - fx:

intSlet = Request.Form("slet")

If Not IsNumeric(intSlet) Then
   ' Her må du finde ud af, hvad du skal gøre, hvis
   ' værdien ikke er numerisk
Else
   intSlet = CLng(intSlet)
   If intSlet > cartmaxused Then
   ' Hvad der så skel ske
   Else
   ' Hvad der ellers skal ske
   End If
End IF


Good luck!

--
Jørn Andersen,
Brønshøj

john wengel (19-09-2006)
Kommentar
Fra : john wengel


Dato : 19-09-06 11:02

>
> Løsningen er såmænd meget enkel - fx:
>
> intSlet = Request.Form("slet")
>
> If Not IsNumeric(intSlet) Then
>    ' Her må du finde ud af, hvad du skal gøre, hvis
>    ' værdien ikke er numerisk
> Else
>    intSlet = CLng(intSlet)
>    If intSlet > cartmaxused Then
>    ' Hvad der så skel ske
>    Else
>    ' Hvad der ellers skal ske
>    End If
> End IF
>
>
> Good luck!
>
Tusind tak

Det vil jeg prøve!

Dog undrer det mig at man kan bruge input fra request.form("navn") i
beregninger, hvis det bliver opfattet som tekst!!

mvh
John Wengel
> --
> Jørn Andersen,
> Brønshøj


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (19-09-2006)
Kommentar
Fra : Jørn Andersen


Dato : 19-09-06 16:13

On 19 Sep 2006 10:01:59 GMT, john wengel <jwnospam@svend-es.dk> wrote:

>Dog undrer det mig at man kan bruge input fra request.form("navn") i
>beregninger, hvis det bliver opfattet som tekst!!

Forskellen på et tal og en tekst kan være, at tallet angives som:
a = 5
men som tekst:
a = "5"

Man har så nogle konverterings-funktioner, som gør tekst til tal -
forudsat at de er numeriske. I mit eksempel:

intSlet = CLng(intSlet)

CLng konverterer til typen Long Integer - altså et helt tal, som kan
blive meget stort:
-2.147.483.648 til 2.147.483.647

Man kunne også have anvendt CInt, som også konverterer til et heltal,
men kun i intervallet:
-32.768 til 32.767

Det at tildele en vaiabel en bestemt type kaldes vist nok "type
casting".

Nogle andre lignende funktioner med hver sine egenskaber er:
CBool, CByte, CCur, CDate, CDbl, CSng, CStr
Int, Fix

CDate kan fx konvertere tekst-strengen "October 19, 1962" til den
tilsvarende dato-værdi. Her skal man dog holde tungen lige i munden,
da lande-/sprog-indstillinger også spiller ind.

Håber det hjalp lidt.

Mvh. Jørn

--
Jørn Andersen,
Brønshøj

john wengel (19-09-2006)
Kommentar
Fra : john wengel


Dato : 19-09-06 19:43

Jørn Andersen wrote in dk.edb.internet.webdesign.serverside.asp:
> On 19 Sep 2006 10:01:59 GMT, john wengel <jwnospam@svend-es.dk> wrote:
>
> >Dog undrer det mig at man kan bruge input fra request.form("navn") i
> >beregninger, hvis det bliver opfattet som tekst!!
>
> Forskellen på et tal og en tekst kan være, at tallet angives som:
> a = 5
> men som tekst:
> a = "5"
>
> Man har så nogle konverterings-funktioner, som gør tekst til tal -
> forudsat at de er numeriske. I mit eksempel:
>
> intSlet = CLng(intSlet)
>
> CLng konverterer til typen Long Integer - altså et helt tal, som kan
> blive meget stort:
> -2.147.483.648 til 2.147.483.647
>
> Man kunne også have anvendt CInt, som også konverterer til et heltal,
> men kun i intervallet:
> -32.768 til 32.767
>
> Det at tildele en vaiabel en bestemt type kaldes vist nok "type
> casting".
>
> Nogle andre lignende funktioner med hver sine egenskaber er:
> CBool, CByte, CCur, CDate, CDbl, CSng, CStr
> Int, Fix
>
> CDate kan fx konvertere tekst-strengen "October 19, 1962" til den
> tilsvarende dato-værdi. Her skal man dog holde tungen lige i munden,
> da lande-/sprog-indstillinger også spiller ind.
>
> Håber det hjalp lidt.
>
> Mvh. Jørn
>
> --
> Jørn Andersen,
> Brønshøj

Tak for et godt og uddybende svar som jeg vil studere nærmere.

mvh
John

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

john wengel (19-09-2006)
Kommentar
Fra : john wengel


Dato : 19-09-06 19:58

>
> Løsningen er såmænd meget enkel - fx:
>
> intSlet = Request.Form("slet")
>
> If Not IsNumeric(intSlet) Then
>    ' Her må du finde ud af, hvad du skal gøre, hvis
>    ' værdien ikke er numerisk
> Else
>    intSlet = CLng(intSlet)
>    If intSlet > cartmaxused Then
>    ' Hvad der så skel ske
>    Else
>    ' Hvad der ellers skal ske
>    End If
> End IF
>
>
> Good luck!
>
> --
> Jørn Andersen,
> Brønshøj

Sådan !

Nu virker det perfekt. :)

Tak for svaret og interessen !

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (19-09-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 19-09-06 11:43

john wengel skrev:

> Dog undrer det mig at man kan bruge input fra
> request.form("navn") i beregninger, hvis det bliver opfattet
> som tekst!!

Hvad mener du?
--
Bolig søges. Andel eller leje i Emdrup, Nordvest, Nørrebro, Søborg
eller Brønshøj, max 6000 pr. måned.
Kontakt pr. mail - nospam(at)gyros.dk
Jens Gyldenkærne Clausen

john wengel (19-09-2006)
Kommentar
Fra : john wengel


Dato : 19-09-06 19:41

Jens GyldenkærneClausen wrote in
dk.edb.internet.webdesign.serverside.asp:
> john wengel skrev:
>
> > Dog undrer det mig at man kan bruge input fra
> > request.form("navn") i beregninger, hvis det bliver opfattet
> > som tekst!!
>
> Hvad mener du?
>
f.eks.
En bruger henter en værdi (et tal)i en database. På baggrund af en
indtastet værdi i et formfelt udføres nu en beregning med tallet fra
databasen.

Det virker ok selvom typen i formfeltet er "text" (type="text")
Jeg henter brugerindtastningen via request.form("etellerandet")
Det indtastede tolkes vel så som et tal - en numerisk værdi ??

Derimod får jeg fejl hvis brugerindtastningen kædes sammen med f.eks.
værdien af en sessionvariabel som tidligere beskrevet.










> Bolig søges. Andel eller leje i Emdrup, Nordvest, Nørrebro, Søborg
> eller Brønshøj, max 6000 pr. måned.
> Kontakt pr. mail - nospam(at)gyros.dk
> Jens Gyldenkærne Clausen


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (19-09-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 19-09-06 20:20

john wengel skrev:

> En bruger henter en værdi (et tal)i en database. På baggrund
> af en indtastet værdi i et formfelt udføres nu en beregning
> med tallet fra databasen.
>
> Det virker ok selvom typen i formfeltet er "text"

Kan du vise et konkret eksempel?

Værdier hentet fra en database får en type der svarer til felttypen
i databasen - dvs. hvis databasen angiver felttypen heltal, bliver
asp-typen også heltal.

Værdier hentet fra en formular håndteres som standard som tekst.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

john wengel (20-09-2006)
Kommentar
Fra : john wengel


Dato : 20-09-06 17:31

Jens GyldenkærneClausen wrote in
dk.edb.internet.webdesign.serverside.asp:
> john wengel skrev:
>
> > En bruger henter en værdi (et tal)i en database. På baggrund
> > af en indtastet værdi i et formfelt udføres nu en beregning
> > med tallet fra databasen.
> >
> > Det virker ok selvom typen i formfeltet er "text"
>
> Kan du vise et konkret eksempel?
>
> Værdier hentet fra en database får en type der svarer til felttypen
> i databasen - dvs. hvis databasen angiver felttypen heltal, bliver
> asp-typen også heltal.
>
> Værdier hentet fra en formular håndteres som standard som tekst.
> --
> Jens Gyldenkærne Clausen

Hvis man f.eks. henter en tal fra en tabel i Access kan man udføre
beregninger med det via et input fra brugeren selvom felttypen i
tabellen
er sat til tekst og brugerens input modtages via request.form("navn")
Det undrer mig da begge typer er text; selvom det jo ikke giver megen
mening at indlægge tal i en tabel hvor typen er text-men det er
muligt.





> Svar venligst under det du citerer, og citer kun det der er
> nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
> hvordan på http://usenet.dk/netikette/citatteknik.html


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

john wengel (20-09-2006)
Kommentar
Fra : john wengel


Dato : 20-09-06 17:42

john wengel wrote in dk.edb.internet.webdesign.serverside.asp:
> Jens GyldenkærneClausen wrote in
> dk.edb.internet.webdesign.serverside.asp:
> > john wengel skrev:
> >
> > > En bruger henter en værdi (et tal)i en database. På baggrund
> > > af en indtastet værdi i et formfelt udføres nu en beregning
> > > med tallet fra databasen.
> > >
> > > Det virker ok selvom typen i formfeltet er "text"
> >
> > Kan du vise et konkret eksempel?
> >
> > Værdier hentet fra en database får en type der svarer til felttypen
> > i databasen - dvs. hvis databasen angiver felttypen heltal, bliver
> > asp-typen også heltal.
> >
> > Værdier hentet fra en formular håndteres som standard som tekst.
> > --
> > Jens Gyldenkærne Clausen
>
> Hvis man f.eks. henter en tal fra en tabel i Access kan man udføre
> beregninger med det via et input fra brugeren selvom felttypen i
> tabellen
> er sat til tekst og brugerens input modtages via request.form("navn")
> Det undrer mig da begge typer er text; selvom det jo ikke giver megen
> mening at indlægge tal i en tabel hvor typen er text-men det er
> muligt.
>
> En uforbeholden undskyldning!! Feltet i tabellen er af typen langt
heltal

So sorry!
- men det er muligt at udføre beregninger med request.form("navn")
>
>
>
> > Svar venligst under det du citerer, og citer kun det der er
> > nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
> > hvordan på http://usenet.dk/netikette/citatteknik.html
>
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (20-09-2006)
Kommentar
Fra : Jørn Andersen


Dato : 20-09-06 18:58

On 20 Sep 2006 16:41:50 GMT, john wengel <jwnospam@svend-es.dk> wrote:

>- men det er muligt at udføre beregninger med request.form("navn")

Ja, hvis den ene af værdierne er et tal som tal, mens den anden er et
tal, som tekst, vil det gå godt. Fx:

a = "5"
b = 6
c = "7"

Resultaterne af forskellige beregninger er:
a + b: 11
a + c: 57
b + c: 13

Så a + c bliver altså til en ny tekststrenge bestående af de to
strenge.
Så det kan altså godt betale sig at checke typen, inden man beregner.


>> > Svar venligst under det du citerer,

- Det går jo helt fint

>> > og citer kun det der er
>> > nødvendigt for at forstå dit svar i sammenhængen.

Mvh. Jørn

--
Jørn Andersen,
Brønshøj

john wengel (20-09-2006)
Kommentar
Fra : john wengel


Dato : 20-09-06 20:09

> Ja, hvis den ene af værdierne er et tal som tal, mens den anden er et
> tal, som tekst, vil det gå godt. Fx:
>
> a = "5"
> b = 6
> c = "7"
>
> Resultaterne af forskellige beregninger er:
> a + b: 11
> a + c: 57
> b + c: 13
>
> Så a + c bliver altså til en ny tekststrenge bestående af de to
> strenge.
> Så det kan altså godt betale sig at checke typen, inden man beregner.
>
Tak for eksemplerne.

Jeg må nok hellere checke alle mine input samt datafelttyper
(selvom programmet egentlig virker som det skal-da datafelttypen i
databasen er af typen tal )


- Jeg kunne forstå fra en tidligere besvarelse på et indlæg, at input der
hentes med request.form eller (query.string) er af typen variant. Hvad
betyder det ?
Ligger der i typen variant at input også kan opfattes som tal ?

MVH
John Wengel
>
> >> > Svar venligst under det du citerer,
>
> - Det går jo helt fint
>
> >> > og citer kun det der er
> >> > nødvendigt for at forstå dit svar i sammenhængen.
>
> Mvh. Jørn
>
> --
> Jørn Andersen,
> Brønshøj


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste