View Full Version : Need some help with code
Parker Clack
08-04-2007, 01:05 PM
I have set up a new profile field but it is allowing url's, etc. into that field.
I would I set it up to strip html and url's from the field?
Right now I am using which doesn't do much.
if($profilefieldname == "field15")
{
$profilefield['value'] = $strip_tags($userinfo["$profilefieldname"]);
}
Thanks for any help in advance.
Parker
EnIgMa1234
08-04-2007, 01:09 PM
Why not just use
if($userinfo['field15'])
{
$userinfo['field15'] = strip_tags($userinfo['field15']);
}
Parker Clack
08-07-2007, 01:54 PM
Thanks.
What I am trying to do is to strip all the HTML out of that field. Like the use of http, or www, or img src, etc.
I apologize if I wasn't clearer the last time.
Parker
Opserty
08-07-2007, 02:52 PM
Techinally they aren't HTML so there is no predefined function for doing this, but you may be able to try this:
if($userinfo['field5'])
{
$badterms = array( 'http', 'www', 'img', 'src');
$userinfo['field5'] = str_replace($badterms, '', $userinfo['field5']);
}
That should work untested though.
EnIgMa1234
08-07-2007, 03:51 PM
Try the htmlspecialchars_uni() tag
Dismounted
08-08-2007, 06:12 AM
if ($userinfo['field5'])
{
$userinfo['field5'] = htmlspecialchars_uni($userinfo['field5']);
}
Parker Clack
08-08-2007, 02:06 PM
Sorry but neither examples used strip the html or www or img, etc. from
the feild.
Thanks,
Parker
EnIgMa1234
08-08-2007, 02:41 PM
Do you mind posting the whole code? Are you using it exactly like Dismounted
Parker Clack
08-12-2007, 09:43 PM
Sorry, I have been working the last few days.
I created a plugin that used the hook location of member_customfileds.
I then put in
if ($userinfo['field15'])
{
$userinfo['field15'] = htmlspecialchars_uni($userinfo['field15']);
}
The field ID is 15 instead of 5.
When I put in data for field15 that utilizes http or www or img, etc. that code
is not striped from the data so it shows up in that field.
Paul M
08-12-2007, 09:52 PM
htmlspecialchars_uni is not a function that strips tags.
Please give examples of input and exactly what you want to strip from that input (i.e. before and after examples).
Parker Clack
08-13-2007, 09:23 PM
Paul:
If somewhere to put in http://www.yourplace.com Go to my place.
I want it to have only "Go to my place" (without the quotes) striping out the url.
Or if they try to use
< img src="http://......." > it would strip out the everything from < to >.
Also, I would like to strip out any { } or [ ].
Thanks,
Parker
Paul M
08-13-2007, 10:14 PM
I don't think there is a single vb function to do all of that - the best way would probably be to use preg_replace() with some custom regex.
Parker Clack
08-17-2007, 08:17 PM
Paul:
Thanks. I am very much a newbee when it comes to code. Could you write up something that I could see what you are recommending done that I could expand on?
Parker
Paul M
08-17-2007, 08:51 PM
You need someone who knows regex quite well to use my suggestion, sadly that's not me, it just gives me a bad headache.
Parker Clack
08-17-2007, 09:11 PM
Would something like this work?
if ($userinfo['field15'])
{
$userinfo['field15'] = preg_replace('#(?<!<http>|<img>|<www>)#', ' ', $userinfo['field15']);
}
Dismounted
08-18-2007, 05:04 AM
if ($userinfo['field5'])
{
$patterns = array(
'/<(.*?)>/i',
'/{(.*?)}/i',
'/[(.*?)]/i'
);
$userinfo['field5'] = preg_replace($patterns, '', $userinfo['field5']);
}
@Paul, regex used to confuse me (and still does) but I get the hang of it :).
Parker Clack
08-19-2007, 09:31 PM
Dismounted:
Still no go. If I put in http://www that is what shows up in the field. If I put in <http that is what shows up.
Thanks,
Parker
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.