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