Reprendre url d'un lien

Résolu
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. 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. 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.