|
| 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
| |
|
|