Empecher l'entrer de lien URL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Empecher l'entrer de lien URL

Re: Empecher l'entrer de lien URL

par helphp » 17 sept. 2010, 04:13

merci beaucoup ça fonctionne très bien.

Re: Empecher l'entrer de lien URL

par stealth35 » 17 sept. 2010, 01:22

parenthèse a mettre en plus
if(preg_match('/(?:http:\/\/)|(?:\w+\.)[^\s]+/ui', $str))

Re: Empecher l'entrer de lien URL

par helphp » 17 sept. 2010, 01:20

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

par stealth35 » 16 sept. 2010, 23:07

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

par helphp » 16 sept. 2010, 23:05

Je veux dire que le texte n'est pas valide parce qu'il contient un lien.

Re: Empecher l'entrer de lien URL

par stealth35 » 16 sept. 2010, 22:59

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

par helphp » 16 sept. 2010, 22:57

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

par stealth35 » 16 sept. 2010, 22:43

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 :wink:
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

par helphp » 16 sept. 2010, 22:26

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 :wink:
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

par stealth35 » 16 sept. 2010, 20:53

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 :wink:

Empecher l'entrer de lien URL

par helphp » 16 sept. 2010, 13:49

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;
	}