8800 sujets

Développement web côté serveur, CMS

Bonjour à tous,

aujourd'hui dans mon grand combat contre les mises à jour de IE je me suis décidé à faire une page "type" pour mes futurs sites.

Tout à l'air fonctionnel mais dans le soucis de la perfection serait-il possible de faire mieux ou moins brouillon ?

Petite explication rapide :

- J'ouvre une session qui me permettra de vérifier si j'ai déjà afficher l'information ou pas
- Je fais un test pour savoir si la variable session "visiteur_informer" a été créée
- Si non alors on teste si le navigateur est à jour
- Si non on créer la variable de session ci-dessus et on affiche l'info selon l'os de la personne (si c'est XP x86 / Vista on dirige vers IE8 32bits, si c'est XP x64 on le dirige vers IE8 64bits et si c'est windows 7 on le dirige vers IE9)
- Dans le cas ou l'OS n'est pas reconnu on le dirige vers firefox (navigateur universel et choix personnel ^^)
- Dans tous les cas on affiche le contenu normal du site en "background" de la bulle d'info et en aucun cas on empêche le visiteur de continuer sa navigation dans le cas ou il ne voudrait pas faire la mise à jour.

Autres infos :
- Le code jquery n'utilise pas de "raccourcis" tels que les $ qui pourrait causer des problèmes avec d'autres librairies.


<?php 
	session_start();
 ?>
<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<title>Gestion des navigateurs</title>
		<link type="text/css" href="css/ui-lightness/jquery-ui-1.8.16.custom.css" rel="stylesheet" />	
		<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
		<script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script>
		<script>
			jQuery(function() {
				jQuery( "#dialog:ui-dialog" ).dialog( "destroy" );
			
				// Dialog Link
				jQuery( "#dialog-message" ).dialog({
					modal: true,
					width:500, // Largeur de la boite d'alerte 
					buttons: {
						'Une autre foi': function() {
							jQuery( this ).dialog( "close" );
						}
					}
				});
				
			});
		</script>
    </head>
	<body>
	<?php 
		/* Si on a déjà averti le visiteur on ne réaffiche pas */
		if  (!isset($_SESSION['visiteur_informer']))  {
			$x = getenv("HTTP_USER_AGENT") ;
			if(strpos($x,'MSIE 7.0') || strpos($x,'MSIE 6.0')) {
				/* On change la variable indiquant qu'on averti le visiteur */
				$_SESSION['visiteur_informer'] = 'oui';
				
				/* Windows xp 32 bits ou windows vista */
				if((preg_match("/Windows NT 5.1/", getenv("HTTP_USER_AGENT"))) || (preg_match("/Windows NT 6.0/", getenv("HTTP_USER_AGENT")))) {
					echo '
					<div class="demo">
						<div id="dialog-message" title="Navigateur dépassé" style="text-align:justify">
							<p>Le site que vous essayez d\'afficher n\'a pas été optimisé pour votre navigateur qui est actuellement désuet. </p> <p>Nous vous conseillons de mettre à jour votre navigateur grâce au lien proposé ci-dessous  pour une meilleure navigation.</p
							<p><a href="http://download.microsoft.com/download/B/B/F/BBFCC870-E61D-4515-B81F-69D4D2F2B23B/IE8-WindowsXP-x86-FRA.exe" target="_blank">Internet Explorer 8.0 (dernière version disponible pour votre système d\'exploitation)</a></p> 
						</div>
					</div>
				';
				} /* Windows xp 64 bits */
				 elseif(preg_match("/Windows NT 5.2/", getenv("HTTP_USER_AGENT"))) {
					echo '
					<div class="demo">
						<div id="dialog-message" title="Navigateur dépassé" style="text-align:justify">
							<p>Le site que vous essayez d\'afficher n\'a pas été optimisé pour votre navigateur qui est actuellement désuet. </p> <p>Nous vous conseillons de mettre à jour votre navigateur grâce au lien proposé ci-dessous  pour une meilleure navigation.</p>
							<p><a href="http://download.microsoft.com/download/A/9/6/A96664CE-D3AB-4EDA-8908-64BB4DD985C5/IE8-WindowsServer2003-x64-FRA.exe" target="_blank">Internet Explorer 8.0 (dernière version disponible pour votre système d\'exploitation)</a></p> 
						</div>
					</div>
				';	
				} /* Windows 7 */
				elseif(preg_match("/Windows NT 6.1/", getenv("HTTP_USER_AGENT"))) { 
					echo '
					<div class="demo">
						<div id="dialog-message" title="Navigateur dépassé" style="text-align:justify">
							<p>Le site que vous essayez d\'afficher n\'a pas été optimisé pour votre navigateur qui est actuellement désuet. </p> <p>Nous vous conseillons de mettre à jour votre navigateur grâce au lien proposé ci-dessous  pour une meilleure navigation.</p>
							<p><a href="http://windows.microsoft.com/fr-CH/internet-explorer/downloads/ie" target="_blank">Internet Explorer 9.0 (dernière version disponible pour votre système d\'exploitation)</a></p> 
						</div>
					</div>
				';	
				} /* On ne connait pas le système d'exploitation on dirige donc vers firefox qui est universel */
				 else {
					 echo '
						<div class="demo">
							<div id="dialog-message" title="Navigateur dépassé" style="text-align:justify">
								<p>Le site que vous essayez d\'afficher n\'a pas été optimisé pour votre navigateur qui est actuellement désuet.</p> <p>Nous vous conseillons de mettre à jour votre navigateur grâce au lien proposé ci-dessous  pour une meilleure navigation.</p>
								<p><a href="http://www.mozilla-europe.org/fr/" target="_blank">Mozilla Firefox</a></p> 
							</div>
						</div>
					';
				 }
			}
		}
		
		echo ' <!-- code de la page d\index à coller ici --> 
		<p><a href="" target="_self">Lien A</a></p> 
		<p><a href="" target="_self">Lien B</a></p> ';
	?> 	
	</body>
</html>


Si vous avez des remarques n'hésitez pas Smiley smile

Voila aussi le dossier complet avec tous les fichiers si jamais vous voulez l'utiliser pour vous Smiley smile
Télécharger
Modifié par BiwAa (06 Sep 2011 - 16:21)
Salut.

Le browser sniffing, c'est le diable.

Surtout qu'en l’occurrence, ce que tu veux faire peux se régler sans soucis avec des commentaires conditionnels.
Bonjour,

L'idée n'est pas bonne non plus...

Tu vas énerver des visiteurs parfaitement au courant des problème de leurs navigateurs et qui n'ont, la plupart du temps, pas moyen d'agir.

En gros, ce genre de message est le meilleur moyen de perdre des visiteurs.


Et accessoirement, détecter une version d'IE se détecte facilement et fiablement avec des commentaires conditionnels.
Bon, les pros ici présents ont répondu entretemps sur le fond, donc je me dispense de la forme.

Mais pour info, ce genre de code HTML / PHP / HTML / etc, non, quoi. Ensuite, la détection d'OS sur ce genre de trucs, c'est bien, mais foireux. N'importe qui peut passer. Le choix 32/64, non.
Même les preg_match sont incorrects... M'enfin, pourquoi chercher des solutions comme ça, alors que sur alsacréations, y'a déjà des tutos pour la "détection" (même si c'est en tant que moyen et non en tant que fin) de browser... ?
Effectivement ce n'est peut-être pas super bien mais je cherchais la à faire une information et non une obligation de mise à jour.

Après le fait de dire que les utilisateurs connaissent et ne peuvent rien faire je suis d'accord pour les entreprises mais pour toutes les autres personnes ?

Apparemment c'est pas le top ce que j'ai fait .. je vais voir autre chose mais j'ai quand même l'intention de mettre quelque chose car déjà qu'IE n'est pas un navigateur que j'aime, alors si en plus il n'y a aucune mise à jour qui est faite ... mais ce débat n'est pas nouveau Smiley smile

Merci de vos remarques (même destructrices Smiley lol )
BiwAa a écrit :

mais j'ai quand même l'intention de mettre quelque chose car déjà qu'IE n'est pas un navigateur que j'aime


Il y a 3 règles de base quand on réalise un site :

1 - Penser à l'utilisateur
2 - Penser à l'utilisateur
3 - Penser à l'utilisateur

Que tu n'aimes pas IE c'est ton choix mais n’essaie pas de l'imposer aux autres.
jmlapam a écrit :
Le client est roi... Smiley lol


... s'il n'utilise pas IE6.

On devrait tous inclure une clause ne garantissant rien pour les navigateurs déclarés obsolètes.
Et c'est bien parce que je pense à l'utilisateur que je met une information comme quoi le navigateur est désuet, et ainsi augmenter sa sécurité et son confort de navigation ...

IE est un navigateur comme les autres quand il est à jour ...