Thanks James

This is excellent.  If you don't mind digging out your functions, I'd much
appreciate it...


> Hello, Simon....
>
> "Simon H" wrote in message...
> > I'm trying to validate an input form, for database INSERT/UPDATE.  I'm
> > looking for a couple of Techniques and I cant seem to find examples
> > anywhere:
> >
> > 1. Validate Alpha Text with spaces, such as NAME, CITY, STATE, but limit
> the
> > length of each one separately, and remove unwanted characters like
> > '@!"£$%^&*() etc that might mess with the SQL.
>
> Alright, clearup before you insert. That's my first bit of advice.....
> Here's a function for you.
>
> function ClearUnwanteds($string) {
>     $string = preg_replace("/[^a-zA-Z0-9 ]/", $string);
>     $string = trim($string);
>     return $string;
> }
>
> This will replace (when invoked, like this: $string =
> ClearUnwanteds($string) ) the characters you don't want, and then trim the
> string.  Then you can do:
>
> if (strlen($string) < /*enter minimum characters*/) {
> // error
> }
>
> > 2. As above but alphanumeric with spaces etc. for say ADDRESS1 ADDRESS2
> > POSTCODE, etc.
>
> Hmm.. isn't that what you wanted for your previous problem?


The previous question was for alpha only, no numeric ...names dont have
numbers, but addresses usually do.

>
> > 3. Validate DATE/TIME input to DD-MM-YYYY HH:MM:SS or D-M-YYYY H:M:S, or
> any
> > combination, but only allow valid dates and times, or as close to it as
> > possible.
>
> You should pick a format, and stick to it, then form a function around the
> format you've chosen - or look up some classes available for use
> on the net.
> Since you're storing the data in a MySQL database, you may as
> well check the
> date in the format it's stored in your db in the date (YYYY-MM-DD) or
> datetime (YYYY-MM-DD HH:MM:SS) formats MySQL uses.... I would go
> for select
> boxes with the day, month and year specified, then use something like
> checkdate() to check the date.... on these variables, then "merge" them
> (can't think of a better word) to form your date - i.e.
>
> if (CheckDate($month, $day, $year)) {
> // -- if ok, $date = $year . "-" . $month . "-" . $day;
> } else {
> // failure
> }
>
>  I have formed some functions that I've made available (somewhere), if you
> need them I can probably drag them out and give you the urls.

I'd got kinda mixed up there on the date thing...lol.  I have a javascript
date picker thingy, but unfotunately it drops leading zeros on the dates and
times.  I think, however, your suggestion if pulldowns is much safer, but
the date will be for MySQL or MS Access.  I think YYYY-MM-DD HH:MM:SS, as
you suggested would be the answer, and I'll try to add the time into the
$date variable.


>
> > 4. Validate MONEY input...numeric with 2 decimal places only.
>
> What currency?  You're using a UK email address, but you've specified
> "STATE" in one of your other regex "wanteds", which is more typical of the
> US address format.


The currency is irrelevent here (although will UK£).  I just want the 2
decimal places money format.  I have STATE above because thats what the
field is in the database....On display it says state/county.


>
> > Also, what is the best way to allow some fields to be empty, like
> ADDRESS2,
> > but if they have data, then validate it.
>
> if (!emtpy($field)) {
> // perform validation.
> }
>
> ???
>
> > I've tried several times to do these myself using eregi, but when I test
> it,
> > the validation fails in some way...I'm shooting in the dark
> tho, and don't
> > really understand regex just yet, or probably the majority of
> PHP for that
> > matter.
>
> Well, ok. But that's what you're here for, right? :)

True....thanks!!

>
> > Thankfully I've got an email one... it was easy to find, since
> that's what
> > all examples are geared for.  My application is for updating a DB with
> SQL,
> > and I cant find anything suitable.
>
> Then your'e looking in the wrong places (and more specifically, looking at
> things from the wrong perspective - regex's can be applied to pretty much
> anything (though, there are occassions when using them is overkill))!
>
> > If there is any other advice for data input into DB's regarding
> security,
> > I'd really to hear it.
>
> bvr's advice is good - read up on what he's suggested. :) Oh, and
> there are
> the manual entries (for which I've forgotten the addresses).
>
> Good luck!
>
> ~James
>

Thanks again James!

Simon H


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to