detecting null

K

Kurt Hill

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

Kurt Hill

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
 
G

Gav

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
 
M

Michael Walton

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

Ray at

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
 
S

Steven Burn

'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)
 
F

Foo Man Chew

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

Foo Man Chew

Also, just to save you confusion in the future, null and empty string are
*NOT* the same thing.


\
 
M

MDW

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

Gav

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

:)
 
M

MDW

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

Ray at

MDW said:
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.

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

Ray at work
 
G

Guest

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

MDW

Good point!

Ray, you're fired!
-----Original Message-----


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


.
 
J

Jeff Cochran

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

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... :)

Jeff
 
M

Michael D. Kersey

MDW said:
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.

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

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
 
T

TomB

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,141
Messages
2,570,817
Members
47,367
Latest member
mahdiharooniir

Latest Threads

Top