Reprendre url d'un lien

Résolu
rolly41 Messages postés 281 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,

Je souhaite afficher une fenêtre spéciale selon l'url d'un lien.

Exemple :

www.lien-interne.net => lien interne, je redirige automatiquement
www.lien-interne.net.tk => Copie de mon domaine, lien externe. Ouvrir alerte1 en javascript
www.truc-lol => Lien externe. Ouvrir alerte1 en javascript
www.exeption.truc => Lien externe mais dans la base de donnée comme partenaire. Ouvrir nouvelle onglet vers cible
www.tru-bidon.nerf => Lien Externe très dangereux. Ne pas rediriger et afficher alerte2 en javascript

Pour cela, je me demande comment dois-je faire pour reprendre l'url du lien clique
<a href="url" onclick="Function_JavaScript">text</a>
Je sais faire le lien qui appel la fonction. Mais ... comment doit-être la fonction en question ?

Pourriez-vous m'aider ?

Merci d'avance.

3 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    et comme ça:

    <html> 
    <head> 
    <title> </title> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
    <link href="styles.css" rel="stylesheet" type="text/css"> 
    
    <script type="text/javascript" > 
    
    function ouverture_lien(url){   
     var regex_site= new RegExp("mon_site.com"); 
     var regex_exep= new RegExp("exeption.truc"); 
     //tu mets d'autres regex pour faire d'autres tests 
     if(regex_site.test(url)){ 
      window.location.href=url; 
     } 
     else if(regex_exep.test(url)){ 
      alert("site autorisé exeptionnelement "); 
      window.location.href=url; 
      //tu peux mettre d'autres tests avec des else if  
     } 
     else{  
      alert("Site non autorisé"); 
      return false; 
     } 
      
    } 
    </script> 
    
    </head> 
    <body> 
    <a href="Void()"; onclick="javascript:ouverture_lien('www.mon_site.com');" target="_blanck">mon_site</a><br /> 
    <a href="Void()"; onclick="javascript:ouverture_lien('www.bad_site.com');" target="_blanck">bad_site</a><br /> 
    <a href="Void()"; onclick="javascript:ouverture_lien('www.exeption.truc');" target="_blanck">exeption.truc</a><br /> 
    </body> 
    </html>


    sinon pour appeler un script php (sur le serveur) depuis javascript il faut utiliser Ajax (vas voir jQuery Ajax)
    dans mon exemple, aulieu d'appeler la fonction ouverture_lien() tu appeles Ajax qui va appelr ton script php qui interroge la BDD en lui pasant l'url en data, et suivant la réponse tu ouvre ou pas le lien.
    1
  2. rolly41 Messages postés 281 Statut Membre 1
     
    Bonjour,

    J'ai trouver ceci sur le net et je le trouve plus approprié (cela évite aux visiteurs de faire "copier l'adresse du lien" et de le coller dans leurs navigateur) :

    <?php
            $page_url ='Valeur du lien'; // Comment dois-je faire pour la récupérer ?
            $url = parse_url($page_url); // Tester le lien ($page_url)
            echo '<pre>';
            print_r($url); // Afficher le résultat
            echo '</pre>';
            if ($url['host']='www.mon-site.com')  // Tester si le host de $url est égal à mon site (si le domaine su lien est celui de mon site)
              {
              echo '<a href="'.$page_url.'">'.$page_url.'</a>'; // Si c'est positif, on affiche le lien
            }
          ?>


    Voici le lien de test :
    <a href="www.mon-site.net" classe="" id="" name="">www.mon-site.com</a>


    Que dois-je mettre dans le lien pour que cela appel le code php ? Ou que dois-je mettre dans le code php pour le faire fonctionner ?

    Dernière question :
    Pour tester si le host du lien est "autorisé", "interdit" ou "inconnu", puis-je utiliser ceci :
    <?php
            $page_url ='Valeur du lien'; // Comment dois-je faire pour la récupérer ?
            $url = parse_url($page_url); // Tester le lien ($page_url)
            $sql = 'SELECT host, statut,commentaire FROM site WHERE host="'.$url['host"].'"';
            $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
            if($req['statut']=="Interne")
              {
              echo '<a href="'.$page_url.'">'.$page_url.'</a>';       
            }
            if($req['statut']=="Partenair")
              {
              echo '<a href="'.$page_url.'" onclick="window.open(this.href); return false;">'.$page_url.'</a>';
            }
            if($req['statut']=="Autorisé")
              {
              echo '<a href="'.$page_url.'" onclick="window.open(this.href); return false;">'.$page_url.'</a>';
            }
            if($req['statut']=="Dangereux")
              {
              echo 'Lien dangereux détécté. <a href="www.mon-site.com/faq#url" onclick="window.open(this.href); return false;">Plus d\'informations</a>';
            }
            else
              {
              echo '<a href="www.mon-site.com/secure?host='.$page_url.'" onclick="window.open(this.href); return false;" id="'.$page_url.'">Cliquez ici</a>';
            }
          ?>


    secure.php reprendra l'id du lien et affichera un avertissement avant une redirection.

    Merci d'avance.
    0