lien vers une nouvelle fenêtre

m@t
Invité n'ayant pas de compte PHPfrance

17 août 2010, 10:21

Bonjour,

je veux ouvrir une nouvelle fenêtre vers un site en cliquant sur un lien.Le problème c'est que la racine de mon site se met aussi dans la barre d'adresse. Voici l'exemple pour être plus clair :
<a target='_blank' href='www.google.fr'>lien</a>
résultat : http://127.0.0.1/www.google.fr

Merci de m'aider.

Eléphant du PHP | 314 Messages

17 août 2010, 10:40

Tu dois préciser le protocole :

http://www.google.fr
Cordialement,
Julien - http://laravel.fr/

m@t
Invité n'ayant pas de compte PHPfrance

17 août 2010, 10:47

Oui excuse moi mais j'ai mal formulé mon pb puisque je ne veux pas pointer vers un site mais vers un document word en intranet. L'adresse du document est du type : \\serveur\repertoire\document.doc

Résultat : http://127.0.0.1/flowdb/\serveur\repert ... cument.doc

m@t
Invité n'ayant pas de compte PHPfrance

17 août 2010, 11:31

En mettant :
<a target='_blank' href='file://///serveur/repertoire/document.doc'>lien</a>
ca marche sur IE mais pas sur FF où aucune action se produit lors du clic.

Personne n'a une idée ?

Mammouth du PHP | 568 Messages

17 août 2010, 11:42

Il me semble que si tu utilise des anti slash cela fonctionne aussi bien sur IE que sur FF.

Par contre il te faut les échapper, par exemple:
$url = "\\\\path\\to\\file\\";
puis tu créé ton lien;

Code : Tout sélectionner

<a href="<? echo $url; ?>" target="_blank">link</a>
EDIT: cela ne fonctionnera bien sur que sur un Intranet.

m@t
Invité n'ayant pas de compte PHPfrance

17 août 2010, 11:55

Merci pour la réponse.

Cela marche pour IE mais pas pour FF.
$url="\\\\serveur\\repertoire\\fichier.doc";
printf ("<a target='_blank' href='".$url."'>lien</a>");
résultat barre d'adresse IE : \\serveur\repertoire\fichier.doc
résultat barre d'adresse FF : http://127.0.0.1/monsite/\\serveur\repe ... ichier.doc

Et ca ne marche pas avec l'attribut file non plus.

Mammouth du PHP | 568 Messages

17 août 2010, 13:44

Je viens de tester et effectivement cela ne fonctionne pas avec Firefox,

Du coup j'ai regardé une de mes anciennes sources qui fonctionne, et le seul moyen d'arriver à ce que tu veux faire est de passer par un fichier de download spécifique.

Mon fichier de test est le suivant:
<?php
	header('Content-type: text/html; charset=utf-8');
	
	$dir = "\\\\172.16.250.165\\d$\\www\\formauto\\files\\";
	$file = "ctypeswss.xml";	
		
	ob_start();
	
	//telechargement
	header("Content-Type: application/force-download; name=\"".basename($file)."\"");
	header("Content-Transfer-Encoding: binary");
	header("Content-Length: ".filesize($dir . $file));
	header("Content-Disposition: attachment; filename=\"".basename($file)."\"");
	header("Expires: 0");
	header("Cache-Control: no-cache, must-revalidate");
	header("Pragma: no-cache");
	readfile($dir . $file);
	exit();
	$dl_file = ob_get_contents();
	
	ob_end_clean();			
	
	echo $dl_file;		
?>
Tu remarquera que le path UNC est défini en entier.

EDIT: ensuite à toi de faire passer le bon identifiant dans lien, par exemple;
<a href="download.php?fileID=identifiantfichier" target="_blank">link</a>

m@t
Invité n'ayant pas de compte PHPfrance

17 août 2010, 14:12

Merci bcp pour cette solution. effectivement elle marche pour FF mais pas pour IE ! #-o

Il ne me reste plus qu'à tester le navigateur pour choisir telle ou telle solution.
Si quelqu'un a la solution pour les 2 navigateurs je lui en serait très reconnaissant !

Mammouth du PHP | 568 Messages

17 août 2010, 14:43

Merci bcp pour cette solution. effectivement elle marche pour FF mais pas pour IE ! #-o

Il ne me reste plus qu'à tester le navigateur pour choisir telle ou telle solution.
Si quelqu'un a la solution pour les 2 navigateurs je lui en serait très reconnaissant !
J'ai tester sur IE et FF et chez moi pas de problème.

m@t
Invité n'ayant pas de compte PHPfrance

18 août 2010, 09:27

Ok merci j'ai opté pour ta solution et cela fonctionne ! :D