Groups | Blog | Home
all groups > inetserver asp general > december 2003 >

inetserver asp general : detecting null



Kurt Hill
12/29/2003 6:37:39 PM
Hi!

I use the '+' operator instead of '&' as it results in a null if any single
argument is null, so you can do this:

IF ISNULL(strArg1 + strArg2 + strArg3 + ... + strArgN) THEN CALL
WreakHavoc

And your code only makes sure that all entries are not blank -- If anything
at all is filled in, it skips then THEN clause...


[quoted text, click to view]

Kurt Hill
12/29/2003 8:06:03 PM
Gav,

Hi again -- another post in this thread has relevant info as well -- Null
and Empty String ("") are not the same, and my previous post (about using
'+') will not work -- sorry! I did some quick testing to refresh my memory
and blank fields do not return Null...

So while my original post is relevant to Visual Basic, it won't help much
with ASP stuff. One approach I've used is to preface my text field names
with "req" for "required," soI'll have text fields named "reqtxtFName,"
"reqtxtLName" etc. then I cycle through all text fields with a "req" prefix
like so:

dim CtlName, bOK

bOK = True
For each CtlName in Request.Form
if left(CtlName, 3) = "req" then bOK = bOK AND Request.Form(CtlName)<>""
Next

If bOK Then 'Everthing was filled in...

This is handy for forms with a lot of fields...

Hope that helped...
Kurt



[quoted text, click to view]

MDW
12/30/2003 9:26:50 AM
As much as I respect Ray, his solution would only work if
ALL the entries were blank. If even one of those had text,
then his test could produce a false positive.

Are you getting this from an HTML form somewhere? If you
are, then another way to do it (call me old fashioned) is
to use client-side script to validate the form entries
before the user even submits the form. Make their browser
do some of the work!

[quoted text, click to view]
MDW
12/30/2003 9:48:44 AM
If your client side validation is tight enough, you really
shouldn't need to do much by way of server-side
validation. The only thing I use ASP for is functions that
JavaScript doesn't provide, such as Replace.

If you're worried about people disabling scripting, one
solution I've come up with is this:

<script language="JavaScript">

document.write("<input type=\"submit\"
value=\"Submit\">);

</script>

<noscript>
In order to submit this form, your browser must have
script enabled.
</noscript>
[quoted text, click to view]
MDW
12/30/2003 11:35:30 AM
Good point!

Ray, you're fired!
[quoted text, click to view]
Michael Walton
12/30/2003 12:14:02 PM
That's how I do it, unfortunately.

Also, are you checking this on the client-side beforehand? It might be a
good idea to do some form validation using Javascript, first, so you save
yourself a trip to the server.


[quoted text, click to view]

Ray at <%=sLocation%
12/30/2003 12:16:28 PM
You could concatenate them all:

sStringSum = firstname & surname & address1 & town & county & country &
postcode & phone & email11 & email2 & password1 & password2

If Len(Trim(sStringSum)) = 0 Then
Response.Write "You didn't fill in anything."
Response.End
End If

Ray at work

[quoted text, click to view]

Foo Man Chew
12/30/2003 12:18:23 PM
This will only tell you that ALL the fields are empty. (if firstname is
blank *and* surname is blank *and*...)

I usually use client-side validation for this, I have a check for each form
field in JavaScript, and if any field is empty, the form doesn't get
submitted and they're asked to fill in the data. This way, the server
doesn't have to do any work checking, and the user is told immediately
instead of wasting time submitting data and waiting for the server to
respond. You also have an easier time keeping track of the data they've
filled in correctly, because you don't have to re-populate the form if it's
never been submitted.

Of course you check on the server as well, because some people don't allow
JavaScript for some reason. But you can save a lot of time and server
processing by stopping 99% of potential errors at the client.




[quoted text, click to view]

Foo Man Chew
12/30/2003 12:20:06 PM
Also, just to save you confusion in the future, null and empty string are
*NOT* the same thing.


\
[quoted text, click to view]

Ray at <%=sLocation%
12/30/2003 12:54:04 PM

[quoted text, click to view]

That was how he had his original code setup. I thought about questioning it
but just decided against it. :]

Ray at work



Peter Foti
12/30/2003 12:58:53 PM
[quoted text, click to view]

In addition, string concatenation is probably a more expensive operation
than checking the length of each string individually. Sorry Ray, but with
all due respect, I think you fell asleep at the wheel on this one. :)

Regards,
Peter Foti

Ray at <%=sLocation%
12/30/2003 1:12:21 PM
I have yet to wake up this week. :]

Ray at work

[quoted text, click to view]

Gav
12/30/2003 5:10:50 PM
Hi,
At the moment i am checking that all the fields have been filled out, at the
moment i am using the following...

if firstname = "" and surname = "" and address1 = "" and town = "" and
county = "" and country = "" and postcode = "" and phone = "" and email11 =
"" and email2 = "" and password1 = "" and password2 = "" then

is there a better more efficient way of doing this??

cheers,
gav

Steven Burn
12/30/2003 5:17:26 PM
'Make sure none of the boxes are empty (zero length)
If len(firstname) = 0 or len(surname) = 0 or len(address1) = 0 or len(town)
= 0 or len(county) = 0 or len(country) = 0 or len(postcode) = 0 or
len(phone) = 0 or len(email11) = 0 or len(email2) = 0 or len(password1) = 0
or len(password2) = 0 Then

Using Len and "Or" instead of "And" is a much better way of doing it.
There's probably also a "cleaner" way of doing it..... I just can't think of
one at the moment.

--
Regards

Steven Burn
Ur I.T. Mate Group
www.it-mate.co.uk

Keeping it FREE!

Disclaimer:
I know I'm probably wrong, I just like taking part ;o)


[quoted text, click to view]

Gav
12/30/2003 5:38:53 PM
Hi,
Thanks for all the replies!!! much apreaciated.

I've gone with stevens method, seems to be the tidyest.

As suggested im also going to use a client side check first to reduce the
load on the server

:)


[quoted text, click to view]

Steven Burn
12/30/2003 5:46:45 PM
No problem.

--
Regards

Steven Burn
Ur I.T. Mate Group
www.it-mate.co.uk

Keeping it FREE!

Disclaimer:
I know I'm probably wrong, I just like taking part ;o)


[quoted text, click to view]

<aa>
12/30/2003 6:40:44 PM
Detecting Null?

Null is defined as no valid data

If a form field named, say, firstname, is left empty when submitting the
form, then request.form.item("firstname") should return the contents of that
form's field, i.e. a zero-length string, which is valid data, it is not?


[quoted text, click to view]

jcochran.nospam NO[at]SPAM naplesgov.com
12/30/2003 8:14:28 PM
On Tue, 30 Dec 2003 17:10:50 -0000, "Gav" <gav1290@ntlworld.com>
[quoted text, click to view]

Client side verification would be more appropriate for this I would
think. Besides, I'd just hit a space bar on all the fields so your
code would accept it... :)

Michael D. Kersey
12/30/2003 11:32:52 PM
[quoted text, click to view]

Unfortunately it is _impossible_ to write a secure application without
doing server-side validation. A user can _always_ spoof input fields
because the user has complete control of the client side of the
interaction. For example, input may come from not a browser but from a
Perl program that mimics a browser. Such a program can be impossible to
detect.

[quoted text, click to view]

How to spoof the above:
save the HTML page, open it in NotePad, edit out the
<noscript>...</noscript> block, add the <input> fields, save the page
again, load it into the browser and submit the form.

Good Luck,
Michael D. Kersey
TomB
12/31/2003 9:58:22 AM
Nobody mentioned it, so I thought I would....You may want to throw a trim in
there to make sure that your fields aren't all spaces.

firstname = trim(Request.Form("firstname"))


[quoted text, click to view]

AddThis Social Bookmark Button