PDA

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