 |
| Javascript How-To Ask your "How do I do this with Javascript?" questions here. |
Welcome to the p2p.wrox.com Forums.
You are currently viewing the Javascript How-To section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
|
|
|
|

February 24th, 2006, 05:26 AM
|
|
Friend of Wrox
|
|
Join Date: Jan 2005
Posts: 1,525
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
javascript remove bad characters for MySQL db hit
Code:
function fix_chars(id,val)
{
if ((typeof(val)=="undefined")||(typeof(id)=="undefined")){
return;
}
if(/'/.test(val))
{
document.forms["fexp"].elements[id].value = val.replace(/'/g,'');
}
if(/&/.test(val))
{
document.forms["fexp"].elements[id].value = val.replace(/&/g,'');
}
if(/_/.test(val))
{
document.forms["fexp"].elements[id].value = val.replace(/_/g,'');
}
if(/,/.test(val))
{
document.forms["fexp"].elements[id].value = val.replace(/,/g,'');
}
if(/%/.test(val))
{
document.forms["fexp"].elements[id].value = val.replace(/%/g,'');
}
if(/`/.test(val))
{
document.forms["fexp"].elements[id].value = val.replace(/`/g,'');
}
if(/"/.test(val))
{
document.forms["fexp"].elements[id].value = val.replace(/"/g,'');
}
if(/@/.test(val))
{
document.forms["fexp"].elements[id].value = val.replace(/@/g,'');
}
if(/~/.test(val))
{
document.forms["fexp"].elements[id].value = val.replace(/~/g,'');
}
if(/#/.test(val))
{
document.forms["fexp"].elements[id].value = val.replace(/#/g,'');
}
}
<input type="text" name="depapt" id="depapt" onKeyUp="fix_chars('depapt',this.value);" />
Is there anyway to cut this function 'fix_chars' down? Am i missing something?
My object is basically to remove any bad characters to stop it crashing my MySQL Database.
Picco
www.crmpicco.co.uk
|
|

February 24th, 2006, 05:48 AM
|
|
Friend of Wrox
|
|
Join Date: Jul 2003
Posts: 683
Thanks: 0
Thanked 1 Time in 1 Post
|
|
Hi Picco,
You could do something like this...
Code:
function fix_chars(textBox)
{
textBox.value = textBox.value.replace(/['&_,%`"@~#]/g, "");
}
...
<input type="text" name="depapt" id="depapt" onKeyUp="fix_chars(this);" />
However, IMHO you should not rely on client side code to prevent db crashes as this can easily be disabled.
Also, these characters should not really be crashing your db.
HTH,
Chris
|
|

February 24th, 2006, 09:31 AM
|
|
Friend of Wrox
|
|
Join Date: Jan 2005
Posts: 1,525
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
thanks Chris, it was mainly the & and the ' that would crash the db, i was just being sure that the others wouldnt by filtering them out......
www.crmpicco.co.uk
|
|

February 24th, 2006, 09:39 AM
|
|
Friend of Wrox
|
|
Join Date: Jan 2005
Posts: 1,525
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
BTW, what characters WOULD crash my DB? the & and ' for sure. but what out of my function and what ive not got would crash, or cause problems with my db. thanks for your help chris
www.crmpicco.co.uk
|
|

February 24th, 2006, 09:52 AM
|
|
Friend of Wrox
|
|
Join Date: Jul 2003
Posts: 683
Thanks: 0
Thanked 1 Time in 1 Post
|
|
If we're talking text fields here, you should be able to insert all the above characters into a MySQL db.
Can you post the sql that's causing the problems?
Cheers,
Chris
|
|

March 1st, 2006, 01:15 PM
|
|
Friend of Wrox
|
|
Join Date: Jan 2005
Posts: 1,525
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
Code:
choice = request("choice")
set rs2=con.execute("select * from db_stadiumname where countryname like '"&choice&"%' and languagecode = 'gb'")
Choice is coming from a text box in the previous page.
What happens is that if a bad character, for example, an apostrophe is entered and submitted then it crashed the MySQL hit and the DB.
Is this not fairly common surely, that is the reason i have built CS and SS validation to catch this...
Picco
www.crmpicco.co.uk
|
|

March 1st, 2006, 06:21 PM
|
|
Friend of Wrox
|
|
Join Date: Jul 2003
Posts: 683
Thanks: 0
Thanked 1 Time in 1 Post
|
|
You just need to replace apostrophes with two apostrophes e.g.
Code:
choice = request("choice")
If choice <> "" Then
choice = Replace(choice, "'", "''")
End If
HTH,
Chris
|
|

March 2nd, 2006, 10:14 AM
|
|
Friend of Wrox
|
|
Join Date: Jan 2005
Posts: 1,525
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
just wondering Chris, you mentioned that most of those chars SHOULDNT crash my db, but surely the apos and ampersand and classic MySQL crashing characters. are you thinking of something else?
www.crmpicco.co.uk
|
|

March 2nd, 2006, 10:30 AM
|
|
Friend of Wrox
|
|
Join Date: Jul 2003
Posts: 683
Thanks: 0
Thanked 1 Time in 1 Post
|
|
Hi Picco,
I insert apostrophes and ampersands all the time without any problems.
Cheers,
Chris
|
|

March 6th, 2006, 08:02 AM
|
|
Friend of Wrox
|
|
Join Date: Jan 2005
Posts: 1,525
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
what SS-code are you using?
www.crmpicco.co.uk
|
|
 |