Page 1 sur 1
Empecher l'entrer de lien URL
Posté : 16 sept. 2010, 13:49
par helphp
Bonjour à tous,
je suis nouveau sur ce forum et je remercie php france d'offrir gratuitement ses espaces pour nous permettre de discuter php.
j'ai trouvé une fonction qui me permet d'empêcher l'écriture de lien URL dans les descriptions. Cette fonction peut vérifier les entrées http://site.com ou http://www.site.net ou www.site.fr sauf qu'elle ne vérifie pas les entrées simple comme site.com ou site.net etc...
Pouvez-vous m'aider sur cette fonction?
voici la fonction:
function parseLinks($str)
{
$http = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "WEBADDRESS", $str);
$http = ereg_replace("www.[^<>[:space:]]+[[:alnum:]/]", "WEBADDRESS", $http);
$error = false;
if(substr_count($http, 'WEBADDRESS')){
return false;
};
return true;
}
Re: Empecher l'entrer de lien URL
Posté : 16 sept. 2010, 20:53
par stealth35
enlève le www.
un adresse web ca commence pas forcement par www, le sous domaine c'est arbitraire on mets ce qu'on veux le www c'est plus historique qu'autre chose

Re: Empecher l'entrer de lien URL
Posté : 16 sept. 2010, 22:26
par helphp
enlève le www.
un adresse web ca commence pas forcement par www, le sous domaine c'est arbitraire on mets ce qu'on veux le www c'est plus historique qu'autre chose

Merci de votre réponse,
j'ai essayé en enlevant le www. et je reçois l'erreur "La description ne peut contenir un Hyperlien" qu'importe ce que j'écris. Que ce soit un hyperlien http://www.site.com ou bonjour à tous. Le texte est mal filtrer.
Re: Empecher l'entrer de lien URL
Posté : 16 sept. 2010, 22:43
par stealth35
enlève le www.
un adresse web ca commence pas forcement par www, le sous domaine c'est arbitraire on mets ce qu'on veux le www c'est plus historique qu'autre chose

Merci de votre réponse,
j'ai essayé en enlevant le www. et je reçois l'erreur "La description ne peut contenir un Hyperlien" qu'importe ce que j'écris. Que ce soit un hyperlien
http://www.site.com ou bonjour à tous. Le texte est mal filtrer.
essayes avec juste ca : \w+\.[a-z]+, sachant qu'on pourrait toujours mettre une IP, c'est pas evidant comme verfification y'a plein de possibilités qui peuvent se confondre avec des chose qu'on rien avoir
Re: Empecher l'entrer de lien URL
Posté : 16 sept. 2010, 22:57
par helphp
J'ai essayé comme ça
$http = ereg_replace("\w+\.[a-z]+", "WEBADDRESS", $http);
et il filtre bien www.site.com mais pas site.com.
Re: Empecher l'entrer de lien URL
Posté : 16 sept. 2010, 22:59
par stealth35
J'ai essayé comme ça
$http = ereg_replace("\w+\.[a-z]+", "WEBADDRESS", $http);
et il filtre bien
www.site.com mais pas site.com.
tu veux suprimer les liens ou dire que le texte n'est pas valide parce qu'il en contient un ?
Re: Empecher l'entrer de lien URL
Posté : 16 sept. 2010, 23:05
par helphp
Je veux dire que le texte n'est pas valide parce qu'il contient un lien.
Re: Empecher l'entrer de lien URL
Posté : 16 sept. 2010, 23:07
par stealth35
Je veux dire que le texte n'est pas valide parce qu'il contient un lien.
pourquoi faire un replace alors ?
un preg_match suffirait
EDIT :
function parseLink($str)
{
if(preg_match('/(?:http:\/\/)|(?:\w+\.)[^\s]+/ui', $str))
{
return false;
}
else
{
return true;
}
}
Re: Empecher l'entrer de lien URL
Posté : 17 sept. 2010, 01:20
par helphp
Je reçois une erreur "Parse error: syntax error, unexpected '{' in C:\wamp\www\test\includes\core\checkout\step3submit.php on line 90"
et en ligne 90
87 function parseLink($str)
88{
89 if(preg_match('/(?:http:\/\/)|(?:\w+\.)[^\s]+/ui', $str)
90 {
91 return false;
92 }
93 else
94 {
95 return true;
96 }
97}
Re: Empecher l'entrer de lien URL
Posté : 17 sept. 2010, 01:22
par stealth35
parenthèse a mettre en plus
if(preg_match('/(?:http:\/\/)|(?:\w+\.)[^\s]+/ui', $str))
Re: Empecher l'entrer de lien URL
Posté : 17 sept. 2010, 04:13
par helphp
merci beaucoup ça fonctionne très bien.