Lien blank avec PHP

Eléphanteau du PHP | 40 Messages

27 mars 2012, 21:07

Bonjour,
je souhaite faire apparaitre un lien vers un fichier si celui ci existe mais dans un nouvel onglet.
je pensais faire

<?php if (file_exists($dest_dossier.$dest_fichier5jpg)){ echo '<a class="style14" href="'. $dest_dossier.$dest_fichier5jpg . '" target="_blank" >5ème JPG Voir</a>';}?>


mais le target="_blank"ne fonctionne pas, le fichier s'ouvre dans le même onglet
Si vous avez une idée, merci par avance

ViPHP
xTG
ViPHP | 7331 Messages

27 mars 2012, 21:23

Cet attribut n'est plus supporté par la norme W3C si je ne dis pas de bêtise.
Donc c'est pas étonnant qu'un navigateur à jour ne l'interprète plus.

Mammouth du PHP | 2278 Messages

27 mars 2012, 22:08

Râlons d'abord:
Si le titre avait été clair, j'aurais laissé tomber: en effet, je m'attendais à une question concernant les rapports incestueux entre Html et Php, du genre:
"quand l'utilisateur clique sur un lien, PHP ne comprend pas ce lien."
Question posée dans un forum inapproprié, car il suffisait de tester le code Hache Tes Melons Longitudinalement pour constater que l'erreur ne venait pas de php mais du code HTML.

Il y a de plus un siècle et trois générations que
cet attribut n'est plus supporté par la norme W3C
et xTG ne dit pas de bêtise en affirmant que
Donc c'est pas étonnant qu'un navigateur à jour ne l'interprète plus.
toutes choses qu'une lecture superficielle de
http://www.alsacreations.com/search/ (searh _blank)
aurait élucidées instantanément.

Maintenant, à coup de javascript, il y a peut-être moyen d'obtenir le même résultat, mais je flirte le moins possible aec javascript.
une solution simple serait de mettre dans la clause title du lien un message rappelant qu'un clic droit ouvre un menu donnant le choix de la fénêtre ou de l'onglet.

Que l'on me comprenne : aider oui, mais seulement aider des gens qui ont cherché et n'ont pas trouvé...
google : _blank en dit 1000 fois plus que nécessaire
Modifié en dernier par sirakawa le 27 mars 2012, 22:25, modifié 1 fois.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
ViPHP | 2577 Messages

27 mars 2012, 22:22

windows.open(url)
Mais je ne sais pas si ca ouvre un onglet ou une fenetre.

ViPHP
xTG
ViPHP | 7331 Messages

28 mars 2012, 07:16

windows.open(url)
Mais je ne sais pas si ca ouvre un onglet ou une fenetre.
Cela dépend de la configuration du navigateur. :)
Par exemple sur le mien si width et height ne sont pas renseigné ce sera un onglet, sinon une popup.

ViPHP
AB
ViPHP | 5818 Messages

28 mars 2012, 16:39

Tu peux faire simplement :

Code : Tout sélectionner

<a href="http://forum.phpfrance.com" onclick="this.target='_blank'">forum php france</a>

Sinon pour le target="_blank" en html c'est "le grand retour" et de nouveau supporté en html 5 http://www.w3schools.com/html5/att_a_target.asp

Eléphanteau du PHP | 40 Messages

28 mars 2012, 19:15

merci à tous pour ces réponses!!!
pour répondre à sirakawa, évidement, j'ai cherché avant de mettre un post. :shock:
Mais difficile de chercher lorsque l'on a du mal à "tourner" au mieux sa requête sur google( la preuve étant le titre que j'ai mis et qui ne t'a pas convenu)
Je te remercie malgré tout pour ton lien. :)
merci surtout à AB : réponse simple et claire =D> =D> =D>
je vais essayer sur le champ

cool!

Eléphanteau du PHP | 40 Messages

28 mars 2012, 20:25

pas bon.
erreur
parse error, expecting `','' or `';''

si je fais

Code : Tout sélectionner

<?php if (file_exists($dest_dossier.$dest_fichier5jpg)){ echo '<a class="style14" href="'. $dest_dossier.$dest_fichier5jpg . '" onclick="this.target='_blank'">5ème JPG Voir</a>';}?>
plus d"erreur si j'enleve les '

Code : Tout sélectionner

<?php if (file_exists($dest_dossier.$dest_fichier5jpg)){ echo '<a class="style14" href="'. $dest_dossier.$dest_fichier5jpg . '" onclick="this.target=_blank">5ème JPG Voir</a>';}?>
mais ouvre toujours dans la même fenetre.

merci de votre aide

ViPHP
AB
ViPHP | 5818 Messages

28 mars 2012, 20:42

pas bon parce que ta chaine n'est pas correcte.

prends modèle là dessus :
$lien = 'http://forum.phpfrance.com';
echo '<a class="style14"  href="'.$lien.'" onclick="this.target=\'_blank\'">5ème JPG Voir</a>';

Eléphanteau du PHP | 40 Messages

29 mars 2012, 21:43

c'était bien ça!
j'ai du mal avec les /

encore merci pour votre aide

ViPHP
AB
ViPHP | 5818 Messages

29 mars 2012, 22:23

Oui et pour la petite histoire cela fonctionnerait également en faisant :
echo '<a class="style14"  href="'.$lien.'" target=\'_blank\'>5ème JPG Voir</a>';
Le "onclick" dans mon exemple précédent était uniquement pour passer par javascript et rendre le code valide XHTML strict. Cela dit, même si le code était non valide XHTMLstrict, tous les navigateurs interprétaient correctement la commande en html simple. Cette façon de faire était donc plus une coquetterie pour faire plaisir au validateur plutôt qu'une nécessité fonctionnelle.

Enfin bon on ne parlera bientôt plus de cette vieille histoire qui a fait couler beaucoup d'encre à l'époque où il avait été décidé de décourager l'emploi de cette méthode en la rendant non valide strict - mais elle continuait néanmoins d'être supportée par tous les navigateurs car très utilisée par les webmestres... HTML5 sans doute par réalisme est devenu beaucoup tolérant et (re)valide l'emploi de cet attribut.