IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Empêcher publication de lien


Sujet :

Langage PHP

  1. #21
    Invité
    Invité(e)
    Par défaut
    On dirait un dialogue de sourds ... où chacun prêche pour sa paroisse ...

    J'avais écrit "Hello boys" parce que vous êtes plusieurs !
    Donc Shikiryu, inutile de prendre mes commentaires "personnellement".

    J'ai aussi écrit "J'ai essayé aussi t'intégrer href="https: ..."
    Ca parle donc de MES essais de code, ce n'est pas une critique sur le tien ...

    La problématique étant de "supprimer tous les liens externes",
    -> http et https sont a prendre en compte,
    -> il faut tester avec tous les cas "viables" possibles.

    C'est une question intéressante, et la solution en intéressera sûrement plus d'un.

    Pas de quoi se fâcher, donc.

  2. #22
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    utilise strip_tags et c'est réglé pas besoin de bidouille avec les regex

  3. #23
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Donc Shikiryu, inutile de prendre mes commentaires "personnellement".

    J'ai aussi écrit "J'ai essayé aussi t'intégrer href="https: ..."
    Ca parle donc de MES essais de code, ce n'est pas une critique sur le tien ...

    La problématique étant de "supprimer tous les liens externes",
    -> http et https sont a prendre en compte,
    -> il faut tester avec tous les cas "viables" possibles.
    Excuse moi si j'ai pu paraitre non-aimable ou autre, je ne le prend pas personnellement, au contraire, tout est constructif.
    L'intervention de lucas était bonne, l'utilisation de parse_url est plutôt meilleure qu'un strpos que je proposais.
    Mais formulé comme tu l'as fait, on dirait plutôt que tu testes "juste" "nos" propositions. Il aurait été judicieux de montrer le code testé plutôt que seulement leurs résultats...

    Une histoire de malentendu


    Citation Envoyé par stealth35 Voir le message
    utilise strip_tags et c'est réglé pas besoin de bidouille avec les regex
    Alors, là, je ne vois pas du tout en quoi ça résoudrait le problème. L'OP ne veut pas supprimer les balises html (sinon pourquoi utiliser CKEditor...) mais seulement supprimer les url des liens s'ils ne sont pas d'un domaine donné car c'est une demande du cahier des charges.

  4. #24
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par Shikiryu Voir le message
    Alors, là, je ne vois pas du tout en quoi ça résoudrait le problème. L'OP ne veut pas supprimer les balises html (sinon pourquoi utiliser CKEditor...) mais seulement supprimer les url des liens s'ils ne sont pas d'un domaine donné car c'est une demande du cahier des charges.
    tu peux choisir les balises que tu veux supprimer avec strip_tags, suffis de virer juste les <a>, sinon après si ont veux faire plaisir a son gentils chef et perdre du temps il faut utiliser DOMDocument et virer les liens grace a parse_url

    EDIT : exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $text = '<a href="http://www.blabla.com/test/test.php">essai url</a>';
    $doc = new DOMDocument();
     
    $fragment = $doc->createDocumentFragment();
    $fragment->appendXML($text);
    $doc->appendChild($fragment);
     
    $links = $doc->getElementsByTagName('a');
     
    foreach($links as $link)
    {
        $host = parse_url($link->getAttribute('href'), PHP_URL_HOST);
     
        if($host !== $_SERVER['HTTP_HOST'])
        {
            $link->setAttribute('href', '#');
        }
    }
     
    echo $doc->saveHTML();

  5. #25
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2008
    Messages : 106
    Points : 152
    Points
    152
    Par défaut
    mais ??!
    ca marche ça non :
    (regardez la fonction de test et l'output !!)

    Citation Envoyé par lucas74 Voir le message
    chezmoiçamarche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php
    function search($s)
    {
        static $authorized_hosts = array('google.com');
        $url = parse_url($s[1]);
        if(array_key_exists('host', $url)
           && !in_array($url['host'], $authorized_hosts))
        {
            return 'href="#"';
        }
        return $s[0];
    }
     
    function antispam($input)
    {
           // on va chercher tous les href sans se préoccuper du domaine
    	$pattern = '#href="((http:\/\/)?(www\.)?(.*?)")#'; 
    	return preg_replace_callback($pattern,"search", $input);
    }
     
     
    echo antispam('<a href="http://google.com/">lolwut</a> <a href="http://127.0.0.1/">xd</a>');
    Output :
    <a href="http://google.com/">lolwut</a> <a href="#">xd</a>

  6. #26
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par lucas74 Voir le message
    mais ??!
    ca marche ça non :
    (regardez la fonction de test et l'output !!)
    oui ça marche mais c'est de la bidouille, pour parser du HTML c'est DOMDocument

  7. #27
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2008
    Messages : 106
    Points : 152
    Points
    152
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    oui ça marche mais c'est de la bidouille, pour parser du HTML c'est DOMDocument
    on est d'accord, l'idée cest d'utiliser parse_url et pas une regex

  8. #28
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Points : 56
    Points
    56
    Par défaut
    Whahou ! Je pars en Week End, et voilà une grande quantité de réponses, je n'en demandais pas tant ! xD
    Alors j'ai pas mal suivit le débat, et je vais bien essayer tout cela, mais seulement à partir de demain, je ne recommence pas avant demain !

    En tout cas je vous remercie fortement, et m'excuse par la même occasion pour le temps que j'ai mit à vous répondre !

  9. #29
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Points : 56
    Points
    56
    Par défaut
    Bon alors j'ai testé celui de Lucas74, et ça marche parfaitement !
    Merci beaucoup en tout cas !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/04/2007, 09h28
  2. [PUBLICATION] Bouton lien hypertexte dans une animation flash
    Par Shaitan Lucifer dans le forum Flash
    Réponses: 3
    Dernier message: 01/02/2007, 23h56
  3. lien pour une table qui ne doit pas etre public
    Par raslain dans le forum Oracle
    Réponses: 1
    Dernier message: 12/12/2005, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo