WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Felmeddelande i asp:NET (https://www.wn.se/forum/showthread.php?t=34825)

MusikMixen 2009-01-31 13:58

Halloj!
Har ett script som ska fylla på mynt till användaren..
När jag kopplar det tll mos så får jag svaret "tjänsten ej tillgänglig"..
Går jag in på sidan får jag detta felmeddelande..
Kod:

Server Error in '/' Application.
--------------------------------------------------------------------------------

Argument 'Length' must be greater or equal to zero.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: Argument 'Length' must be greater or equal to zero.

Source Error:


Line 7: *        Dim phoneNumber As String = Request.QueryString("nr")
Line 8: *        Dim smsText As String = Request.QueryString("sms")
Line 9: *        Dim memberUsername As String = Right(smsText, Len(smsText) - 12)
Line 10: *Dim cashType As String = Left(smsText, 11)
Line 11: *Dim cashPoints As Integer = 0
 

Source File: D:\dbd_sidor\musikmixen\CashSMSHandler.aspx * *Line: 9

Stack Trace:


[ArgumentException: Argument 'Length' must be greater or equal to zero.]
 * Microsoft.VisualBasic.Strings.Right(String str, Int32 Length) +150579
 * ASP.cashsmshandler_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in D:\dbd_sidor\musikmixen\CashSMSHandler.aspx:9
 * System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +98
 * System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +20
 * System.Web.UI.Page.Render(HtmlTextWriter writer) +26
 * System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
 * System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
 * System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
 * System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2558

Tjänsten anropas med "Musikm mynt010 micke"

Ngn som vet hur man löser det?
Tack på förhand!

Robert 2009-01-31 15:38

På rad 9 smäller det. Du försöker ta längden på smsText och dra bort 12. Vad händer om smsText är kortare än 12tecken? Du får ett negativt tal, och det verkar vara det den klagar på.

Du behöver verkligen validera inputen på ett bättre sätt och se till att alla parametrar skickades med. Plocka inte ut memberUsername förän du vet att smsText existerar (till exempel).

MusikMixen 2009-01-31 15:49

Citat:

Originally posted by Robert@Jan 31 2009, 16:38
På rad 9 smäller det. Du försöker ta längden på smsText och dra bort 12. Vad händer om smsText är kortare än 12tecken? Du får ett negativt tal, och det verkar vara det den klagar på.

Du behöver verkligen validera inputen på ett bättre sätt och se till att alla parametrar skickades med. Plocka inte ut memberUsername förän du vet att smsText existerar (till exempel).

Det är ett köpt script och killen som sålde det svarar inte.. Jag kan nada om det :(
Mycket som strular med sidan så jag ville bryta köpet.. Då försvann han :)

quickhelp 2009-01-31 16:19

Citat:

Originally posted by Dansbandsdax.se@Jan 31 2009, 16:49
Det är ett köpt script och killen som sålde det svarar inte.. Jag kan nada om det :(
Mycket som strular med sidan så jag ville bryta köpet.. Då försvann han :)

Och du betalade utan att testa igenom det du har fått?

rhdf 2009-01-31 17:01

hmm
smsText borde mao innehålla "Musikm mynt010 micke", eller har jag missat nånting?
när jag kör den kod som finns i felmesset så får jag följande resultat
Kod:

memberUsername: 10 micke
cashType: Musikm mynt

är det vad du VILL ha eller är det åt helsike fel?

är smstext tom eller kortare än 12 tecken så får man ju, som det påpekats felmess eftersom man felaktigt antagit att den strängen alltid kommer innehålla något och därför inte lagt in en validering för det. Det verkar dessutom som att koden är hårdspecad för endast funka med EN längd på input
så tex
XXXXX XXXXX XXXXX funkar
XXXX XXXX XXXXXXX funkar inte eftersom strängen klipps fel ,(bäst är att splitta den till en array med mellanslag som separator och sen hämta ut värdena därifrån)


Alla tider är GMT +2. Klockan är nu 03:35.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson