Reprendre url d'un lien [Résolu/Fermé]

Messages postés
234
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
4 septembre 2019
- - Dernière réponse : Alain_42
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
- 29 mars 2013 à 09:51
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.
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
866
1
Merci
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.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 62686 internautes nous ont dit merci ce mois-ci

Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
866
0
Merci
tu fais un test avec les Regex javascript sur le lien

vas voir le site:

http://www.siteduzero.com/informatique/tutoriels/dynamisez-vos-sites-web-avec-javascript/les-regex-en-javascript
Messages postés
234
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
4 septembre 2019
2
0
Merci
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.