Reprendre url d'un lien
Résolu
rolly41
Messages postés
281
Statut
Membre
-
Alain_42 Messages postés 5413 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
Pourriez-vous m'aider ?
Merci d'avance.
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
-
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. -
tu fais un test avec les Regex javascript sur le lien
vas voir le site:
https://openclassrooms.com/fr/courses -
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.