> Tous les forums > Forum des Webmasters
 souci de lien externeSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
ogd
  Posté le 13/10/2010 @ 09:07 
Aller en bas de la page 
Astucien

Hello!

Je suis confrontéà un souci qui doit être d'une simplicité enfantine mais je bloque:

J'appelle depuis une bdd une url entrée par un utilisateur.

Cette url est toujours un lien externe que j'ouvre dans un _blank

souci:

-Si l'utilisateur entre l'url complète de type http://www.etc.etc pas de souci la page s'ouvre sans problème

-si l'utilisateur entre une url de type www.etc.etc, le lien qui s'ouvre commence par l'appel à mon nom de domaine suivi de l'url voulue, donc comme ceci www.etc.etc">www.etc.etc" target="_blank">http://www.mondomain.com/www.etc.etc

et là, forcément, ça marche moins bien...

-Je n'ai pas encore testé les url de type "etc.etc"

donc,pourriez vous me rappeler comment faire pour que l'url entrée quelque soit sa forme, ne soit pas considérée comme faisant partie de mon domaine mais bel et bien comme des adresses externes.

Merci

Publicité
qmike549
 Posté le 13/10/2010 à 10:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

bonjour

Tester la présence de http dans la chaine de caractères

si absent alors compléter http:\\ sur l'url concerné

s'agit-il du langage PHP ???

qmike549
 Posté le 13/10/2010 à 11:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

bonjour

Pour information

Pour tester la présence d'un mot dans une chaine de caractère en PHP

Utiliser la fonction stristr ()



Modifié par qmike549 le 13/10/2010 11:05
qmike549
 Posté le 13/10/2010 à 11:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

bonjour

Exemple

$ Main_string = "Ceci est un <a href=http://www.plus2net.com> chaîne de test avec un lien </ a> pour plus2net";
if (stristr ($ main_string, "http://")) {
echo "La chaîne contient un lien ou le http:// texte à l'intérieur";}
else {
echo "La chaîne ne contient un lien ou le http:// texte à l'intérieur";}

ogd
 Posté le 14/10/2010 à 12:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Hello!

Merci pour ton aide !

J'ai donc adapté comme suit :

<?
$Main_string = $donnees['site'];
if (stristr ($main_string, "http://")) {
echo $donnees['web'];}
else {
echo "http://" . $donnees['site'];}
?>

Ca a l'air de fonctionner, mais je voudrais que tu me confirmes la validité de ce code?

Merci

Malcolm
 Posté le 14/10/2010 à 22:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

$Main_string = $donnees['site'];
if (stristr ($main_string, "http://")) {

marchera pas

Sinon, tu détournes un peu la fonction, là. Normalement, stristr est censée retourner un string, (chaine de caractères) et toi tu fais comme si c'était tout le temps un booléen (alors que le booléen FALSE est retourné uniquement en cas de non correspondance), ce qui génère donc souvent un warning, silencieux aujourd'hui sans doute, mais dans le futur si la config change (màj du serveur), il se peut qu'il soit affiché ...

Plutôt que

if (stristr ($main_string, "http://")) {

utilise plutôt :

if (stristr ($main_string, "http://") !== false) {

visuellement tu ne verras pas de différence, mais conceptuellement, c'est plus propre.



Modifié par Malcolm le 14/10/2010 22:30
ogd
 Posté le 15/10/2010 à 08:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Malcolm a écrit :

$Main_string = $donnees['site'];
if (stristr ($main_string, "http://")) {

Mais heuuu, ma maîtresse elle m'a toujours dis :

"Ogd, en début de phrase on met toujours une majuscule"... on m'aurait menti

Merci Malcolm pour tes précisions, je n'ai pas fais gaffe a la majuscule care ça fonctionnait mais là aussi pour le moment...

C'est désormais corrigé!

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
21,99 €Enceinte connectée Amazon Echo Dot (3ème génération) avec assistant Alexa à 21,99 €
Valable jusqu'au 25 Septembre

Amazon fait une promotion sur l'enceinte Amazon Echo Dot (3ème génération) qui passe à 21,99 € (au lieu de 49,99 €). L'appareil piloté par la voix fonctionne avec Alexa, l’intelligence artificielle développée par Amazon. Vous pourrez avec elle écouter de la musique, interagir avec vos appareils domotiques, écouter les infos, la radio, connaître la météo et d’accéder à des milliers d’autres possibilités grâce aux Skills : recettes de cuisine, petits jeux, etc. Par rapport à la génération précédente, le son est amélioré et l'enceinte arbore un nouveau design. 


> Voir l'offre
24,99 €Ensemble clavier et souris sans fil Logitech MK235 à 24,99 €
Valable jusqu'au 25 Septembre

Amazon fait une promotion sur l'ensemble Logitech MK235 qui passe à 24,99 € alors qu'on le trouve ailleurs à partir de 35 €. Ce pack comporte un clavier et une souris sans fil d'une portée de 10 mètres. Les piles fournies (et que vous pouvez remplacer ensuite) offrent une autonomie de 36 mois pour le clavier et de 12 mois pour la souris.  


> Voir l'offre
205,67 €Ecran 27 pouces LG Ultragear 27GN650-B (FHD, IPS, 1 ms, 144 Hz) à 205,67 € livré
Valable jusqu'au 23 Septembre

Amazon Italie fait une promotion sur l'écran LG Ultragear 27GN650-B qui passe à 196,71 € (avec la TVA ajustée). Comptez 8,96  € pour la livraison en France soit un total de 205,67 € livré. On le trouve à 280 € ailleurs. Cet écran possède une dalle 27 pouces FHD (1920x1080) IPS à 144 Hz, un temps de réponse de 1 ms. Il est compatible FreeSync et GSync.

Vous pouvez utiliser votre compte Amazon FR sur Amazon IT et il n'y a pas de douane.


> Voir l'offre

Sujets relatifs
JavaScript Lien Externe
comment faire lien externe avec dreamwever ?
creer un lien qui ouvre une fenetre
Faire un lien sur une image
Afficher image sur lien
lien entre page et bouton
aide creations de boutons qui donne sur un lien video
changement de couleur d'un lien visité
affichage d'un lien
Souci appellation photo sur google images
Plus de sujets relatifs à souci de lien externe
 > Tous les forums > Forum Forum des Webmasters