Toon posts:

[ASP]error in scripje (noob vraag)

Pagina: 1
Acties:
  • 46 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik ben dus een totale beginner in ASP en moet volledig uitgaan van de diverse tutorials, echter op dit moment zit ik even vast met een scripje wat ik aan het maken ben

Ik heb het volgende scripje gemaakt:
code:
1
2
3
4
5
6
7
8
9
10
11
if Request.ServerVariables("remote_addr") = "<een ip>" then
If not isnull Request.QueryString("svc") or not isnull Request.QueryString("svc")="" then
                     If request.querystring("act") = "stop" then call stopsvc(request.querystring("svc"))
                     If request.querystring("act") = "start" then call startsvc(request.querystring("svc"))
else if
%>
Niet toegestaan van IP
<%
Response.Write(Request.ServerVariables("remote_addr"))
End if
Response.End


Als ik het scripje aanspreek krijg ik de volgende error:
'Then' wordt verwacht

/script.asp, line 7

If not isnull Request.QueryString("svc") or not isnull Request.QueryString("svc")="" then


Ik heb al diverse veranderingen geprobeert maar telkens een error

Wat il wil is dys dat teh call functie alleen wordt aangesproken als men vanaf een bepaald IP komt en als de waarde svc is ingevuld.

In PHP heb ik hiermee geen moeite maar met ASP (waar ik tot nu toe nog steeds niet veel van snap) wil me dit niet lukken.

Kan iemand me vertellen wat er mis is of me een query geven die wel doet wat ik wil?
Via de diverse tutorial sites kan ik net niet deze info vinden die ik nodig heb.

  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 02-01 15:55
Je fout zit hierin:

Visual Basic:
1
not isnull Request.QueryString("svc")=""


Je kunt een boolean natuurlijk niet vergelijken met "", wat je moet doen is of ' ="" ' weghalen of isnull ertussenuit halen.

If I can't fix it, it ain't broken.


  • Millennium
  • Registratie: Augustus 2000
  • Laatst online: 07:59

Millennium

Bug free !!!

Haal de if in regel 5 eens weg ;)

Rampen bak 2004


Verwijderd

Topicstarter
ik heb dus de if weg gehaald en de ="" en nog steeds de error. dit is de code nu:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if Request.ServerVariables("remote_addr") = "<een ip adres>" then

If not isnull Request.QueryString("svc") then
                     If request.querystring("act") = "stop" then call stopsvc(request.querystring("svc"))
                     If request.querystring("act") = "start" then call startsvc(request.querystring("svc"))

else
%>
Niet toegestaan van IP
<%
Response.Write(Request.ServerVariables("remote_addr"))

End if
Response.End


De error:
Then' wordt verwacht

/script.asp, line 3

If not isnull Request.QueryString("svc") then

[ Voor 49% gewijzigd door Verwijderd op 25-09-2005 19:36 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 27-04 18:17

gorgi_19

Kruimeltjes zijn weer op :9

Hint: http://www.devguru.com/Te...ript/quickref/isnull.html of http://www.google.com/search?hl=en&q=isnull+VBSCript (eerste pagina).

[ Voor 34% gewijzigd door gorgi_19 op 25-09-2005 19:43 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
aan die hint heb ik niks, daar staat niets vermeld wat me kan helpen met dit probleem, er staat geen voorbeeld wat wel werkt.....

Zoals al gezegd ik snap er echt de ballen van het hele ASP verhaal, ik ken redelijk PHP maar kom er niet uit.

Ik moet een is NIET nul hebben
Of te wel als de waarde aanwezig is dan doorgaan anders niks doen.

Ik heb het nu aangepast maar blijft errors houden:
code:
1
2
3
4
5
6
7
8
9
10
if Request.ServerVariables("remote_addr") = "een ip" & not isnull Request.QueryString("svc") then
                     If request.querystring("act") = "stop" then call stopsvc(request.querystring("svc"))
                     If request.querystring("act") = "start" then call startsvc(request.querystring("svc"))
else
%>
Niet toegestaan van IP
<%
Response.Write(Request.ServerVariables("remote_addr"))
End if
Response.End


Kan me nou niemand gewoon zeggen WAT er fout is, want ik zie het niet, volgens mij zijn gewoon alle waardes correct

Ik query nu volgens mij:
als afkomstig van ip en svc is opgegeven dan door gaan, anders error: (niet toegestaan bla bla)

Dat staat er en dat zou die ook moeten doen maar toch krijg ik een error....
Waarom wertk dit dus niet?

Kan ASP niet zoals in PHP een simpel IF statement uit voeren?

[ Voor 14% gewijzigd door Verwijderd op 25-09-2005 19:48 ]


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 10:48

Robtimus

me Robtimus no like you

IsNull is een functie en er moeten dus haken om je Request.QueryString("svc") heen.

Verder mis je nog een End If in dit stuk code, je hebt nml twee If openers (regels 1 en 3; 4 en 5 zijn one-line if statements) maar alleen op regel 13 een End If.

Edit: verder moet je in ASP AND gebruiken en niet & of &&.

Edit2: wist je trouwens dat VB en VBScript (en dus standaard ASP) geen lazy evaluation hebben? Dus als het request niet van dat ene IP komt kijkt ie nu alsnog of svc als parameter is meegegeven. Maakt nu niet zoveel uit, maar later misschien wel.

[ Voor 48% gewijzigd door Robtimus op 25-09-2005 19:52 ]

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

Topicstarter
End if?

Ik open toch 1 IF (code regel 1) en sluit deze weer op regel 9

De andere 2 IF zijn aan spreken van functie's, daar kan ik toch niet zomaar een end if neer zetten, dan stopt het script ineens midden in een andere IF

aan edit 2:
Maar hij voert die IF toch alleen maar uit als BEIDE waardes aanwezig zijn, dus alleen vanaf dat IP en als het niet leeg is.....
Het is belangrijk dat dit zo werkt namelijk.

[ Voor 31% gewijzigd door Verwijderd op 25-09-2005 19:53 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 27-04 18:17

gorgi_19

Kruimeltjes zijn weer op :9

LEES die pagina dan eens, en vergelijk wat je doet. :)

VBScript:
1
FunctieOmUitTeVoeren(Parameter)

is niet gelijk aan
VBScript:
1
FunctieOmUitTeVoeren Parameter

Wat we je nu al meerdere keren duidelijk proberen te maken. Kijk eens naar de syntax die beschreven staat op die pagina's en vergelijk dat je met je eigen code. En als je geen hints wilt, maar kant en klare code, mag je me inhuren; inclusief bijbehorende factuur :)
Ik open toch 1 IF (code regel 1) en sluit deze weer op regel 9
Nee, dat doe je niet; je kwakt er nog wat code tussen, waardoor ASP eerder een einde van het IF-statement verwacht.
Kan ASP niet zoals in PHP een simpel IF statement uit voeren?
Dat kan ASP, mits de syntax goed is.
Verder mis je nog een End If in dit stuk code, je hebt nml twee If openers (regels 1 en 3; 4 en 5 zijn one-line if statements) maar alleen op regel 13 een End If.
Afaik mag je If .. then .. constructies ook op 1 regel gebruiken; een end if is dan niet nodig. :)
aan edit 2:
Maar hij voert die IF toch alleen maar uit als BEIDE waardes aanwezig zijn, dus alleen vanaf dat IP en als het niet leeg is.....
Hij komt er niet eens, want ook die syntax is fout; & kent ASP VBScript niet in deze context.

[ Voor 58% gewijzigd door gorgi_19 op 25-09-2005 20:02 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
structureer je code eens om te beginnen

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if Request.ServerVariables("remote_addr") = "<een ip>" then
      If not isnull Request.QueryString("svc") or not isnull Request.QueryString("svc")="" then

            If request.querystring("act") = "stop" then
                  call stopsvc(request.querystring("svc"))
            end if

            If request.querystring("act") = "start" then
                  call startsvc(request.querystring("svc"))
            end if
      else if
            response.write("Niet toegestaan van IP")
            Response.Write(Request.ServerVariables("remote_addr"))
      End if

Response.End


En je ziet gelijk waar de fout zit...

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Niks toe te voegen aan de verhalen hierboven. B3rt, dat je weinig ervaring hebt met ASP wil niet zeggen dat je daarom maar alles voorgekauwd moet krijgen. Gorgi geeft je een linkje waarmee je prima uit de voeten moet kunnen, met de reden dat de fout die je maakt niet voor ASP specifiek is, maar ook in PHP gewoon compleet fout zou zijn. Ik wil je dan ook aanraden eens een goed boek te lezen over programmeren in het algemeen, of misschien een boek dat je dat kan leren aan de hand van een taal die je al dan niet al kent.

Je hebt hier verder nogal een beginnersprobleem, zoals je zelf al aangeeft. In Programming & Webscripting zijn we toch over het algemeen bezig met de iets geavanceerdere problemen dan het fout aanroepen van een functie. Misschien kun je voor dit soort vragen beter even langsgaan op Beginnersweb? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.