Reprendre url d'un lien

Résolu/Fermé
rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023 - 27 mars 2013 à 05:13
Alain_42 Messages postés 5361 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.

3 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 29/03/2013 à 09:54
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
27 mars 2013 à 17:59
tu fais un test avec les Regex javascript sur le lien

vas voir le site:

https://openclassrooms.com/fr/courses
0
rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023 1
29 mars 2013 à 01:24
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