Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1434 connectés 

  FORUM HardWare.fr
  Programmation

  [PHP] Récupérer la résolution d'ecran

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Récupérer la résolution d'ecran

n°50910
dirakocha
Posté le 03-08-2001 à 14:53:59  profilanswer
 

Bon ça fait un ptit bout de tps que je suis là dessus et là je craque  :pt1cable:  j'y arrive po  :(  J'ai pourtant essayé plein de truc mais ça veux po marcher  :cry:  
Si qlq1 à un script qui peux faire ça ce serait cool :D


---------------
Q.G Tutoriaux ici
mood
Publicité
Posté le 03-08-2001 à 14:53:59  profilanswer
 

n°50911
Mikvix
Posté le 03-08-2001 à 14:56:50  profilanswer
 

en fait faut recuperer la résolution en Javascript ...
 
tu peux faire comme ça :
 
<?  
if(empty($res))  
{  
echo '<script language="JavaScript">  
<!-- debut  
document.location="page.php3?res=1&w="+screen.width+"&h="+screen.height;  
// fin -->  
</script>';  
}  
else  
{  
echo "Résolution d'écran : ".$w."*".$h;  
}  
?>

n°50917
_naoua
Posté le 03-08-2001 à 15:03:36  profilanswer
 

Voilà un script en jscript...
 
<SCRIPT language="JScript">
<!--
if (window.screen)
{
  var wi=screen.availWidth;//permet d'avoir la largeur
  var hi=screen.availHeight;//permet d'avoir la largeur
//les deux instructions suivantes permettent d'agrandir le fenêtre.
  window.moveTo(0,0);
  window.resizeTo(wi,hi);
}
-->
</SCRIPT>

n°50923
dirakocha
Posté le 03-08-2001 à 15:15:20  profilanswer
 

Ben en fait g déjà testé les deux mais y'a comme un bug :p
 
Pour le premier script, la page se reload en boucle :??:
Pour le second, ben y a pas de bug c juste que je l'ai déjà fait en js et que je veux faire le maximum en php :p
 
En fait, je veux avoir la possibilité de choisir le lien vers ma page principale (après page d'index) en fonction du navigateur et de la résolution de l'utilisateur.
 
Ce serait un truc du genre le gars se connecte, le script reconnait sa résolution et son navigateur et change le lien vers la page suivante en fonction des paramètres précédent. C faisable ça ?! Le seul pb c que ça bug et que je commence à m'embrouiller :p


---------------
Q.G Tutoriaux ici
n°50928
Mikvix
Posté le 03-08-2001 à 15:27:46  profilanswer
 

c'est possible .. il faut juste que tu utilises les fonctions du jscript pour recuperer les données ... aprés tu fais ce que tu veux en php ...  
 
et pour passer des données de JS vers php, je ne sais pas faire autrement qu'en rechargeant la pas ...
 
si ça boucle c'est pas normal au fait ... t'as mis la bonne page dans la redirection ?

n°50929
_naoua
Posté le 03-08-2001 à 15:28:07  profilanswer
 

oui c'est faisable du moins, je pense:
Dans ta page d'accueil, tu mets un formulaire avec deux input de type hidden.
dans ces deux input(nommés largeur, hauteur), tu fous la largeur et la hauteur de ton écran. ensuite, tu fais appel à une fonction (javascript) qui redirige ta page vers ta seconde, dans laquelle, tu pourras reprendre la valeur des inputs de ton formulaire précédent.
normalement, çà devrait le faire.

n°50930
Mikvix
Posté le 03-08-2001 à 15:28:34  profilanswer
 

pour les données en javascript, je te conseil ce site :
 
http://www.editeurjavascript.com/p [...] ?id=csharp

n°50974
dirakocha
Posté le 03-08-2001 à 17:29:10  profilanswer
 

J'ai trouvé mon erreur pour la boucle et ça fonctionne à peu près si ce n'est que je n'arrive po à lui faire changer le lien en fonction du navigateur et de la résolution mais à part ça tout rulezz :sarcastic:  
 
Bon voici le code, peut-être que vous y verez plus kler que moi :p :
 
 
 
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body text="#E6EBF1" background="images/test.jpg" link="#E6EBF1" vlink="#E6EBF1" alink="#E6EBF1">
<?
include ("utilisateurs.php" );
 
if(empty($res))
{
 echo '<script language="JavaScript">
 <!-- debut
 document.location="index.php?res=1&width="+screen.width+"&height="+screen.height;
 // fin -->
 </script>';
}
else
{
 echo "Résolution : ".$width."*".$height."<br>\n";
}
 
if (ereg('MSIE', $HTTP_USER_AGENT) && !ereg('Opera', $HTTP_USER_AGENT))
{
 // Internet Explorer
 $navigateur="IE";
}
elseif (ereg('Opera', $HTTP_USER_AGENT))
{
 // Opera
 $navigateur="Opera";
}
elseif (ereg('Mozilla/4.', $HTTP_USER_AGENT))
{
 // Netscape 4.x
 $navigateur="NS";
}
elseif (ereg('Mozilla/5.0', $HTTP_USER_AGENT) && !ereg('Konqueror', $HTTP_USER_AGENT))
{
 // Netscape 6
 $navigateur="NS";
}
 
echo "Navigateur : $navigateur<br>\n";
echo "<p align = center>\n";
 
if ($navigateur='IE')
{
  echo "<br><br> ";
  if ($width = '1152')
  {
        echo '<b><a href="main-1152IE.php" target="_self">INDEX</a><b>';
  }
  else
  {
          echo '<b><a href="main-1024IE.php" target="_self">INDEX</a><b>';
  }
}
elseif ($navigateur='NS')
{
  echo "<br><br>";
 
  if($width = '1152')
  {
   echo '<b><a href="main-1152NS.php" target="_self">INDEX</a><b>';
  }
  else
  {
   echo '<b><a href="main-1024NS.php" target="_self">INDEX</a></b>';
  }
}
/*else
{
 echo "<br><br>";
 echo "<b><a href=\"main-1152IE.php\" target=\"_self\">INDEX</a><b>";
} */
 
echo "</p align = center>\n";
?>
</body>
</html>


---------------
Q.G Tutoriaux ici
n°2300130
bech2
Posté le 03-05-2017 à 14:57:43  profilanswer
 

La discussion ancienne mais pour ce problème particulier, on ne trouvait pas de solution simple qui fonctionne.
 
J'ai trouvé une solution en utilisant des cookies.
 
Principe :

  • Javascript récupère la largeur et la hauteur de la fenêtre et l'enregistre dans des cookies valables jusqu'à la fermeture du navigateur.
  • PHP récupère les valeurs inscrites dans ces cookies.


En mettant le tout dans un seul fichier PHP, ça donne :
 

Code :
  1. <html>
  2. <head>
  3.     <title>Détermination et affichage de la taille de la fenêtre du navigateur</title>
  4.     <meta name=author content="Bernard Chardonneau">
  5.     <meta name=copyleft content="Téléchargement autorisé">
  6.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. </head>
  8. <body>
  9.     <script>document.cookie = "largeur=" + window.innerWidth + "; expires=0"</script>
  10.     <script>document.cookie = "hauteur=" + window.innerHeight + "; expires=0"</script>
  11. <?php
  12.     if (isset ($_COOKIE ['largeur']))
  13.     {
  14.         echo "    Largeur = ".$_COOKIE ['largeur']." pixels<br/>\n";
  15.         if (isset ($_COOKIE ['hauteur']))
  16.             echo "    Hauteur = ".$_COOKIE ['hauteur']." pixels<br/>\n";
  17.         else
  18.             echo "    Hauteur non disponible, réafficher la page<br/>\n";
  19.     }
  20.     else
  21.     {
  22.         if (isset ($_COOKIE ['hauteur']))
  23.         {
  24.             echo "    Hauteur = ".$_COOKIE ['hauteur']." pixels<br/>\n";
  25.             echo "    Largeur non disponible, réafficher la page<br/>\n";
  26.         }
  27.         else
  28.         {
  29.             echo "    Largeur et hauteur non disponibles, réafficher la page<br/><br/>\n";
  30.             echo "    Si ça ne marche toujours pas vérifiez les points suivants :\n";
  31.             echo "    <ul>\n";
  32.             echo "        <li>votre navigateur web doit accepter les cookies</li>\n";
  33.             echo "        <li>votre navigateur web doit utiliser javascript</li>\n";
  34.             echo "        <li>votre navigateur web doit être compatible</li>\n";
  35.             echo "    </ul>\n";
  36.         }
  37.     }
  38. ?>
  39. </body>
  40. </html>


 
L'exécution de cette page permet de comprendre le mécanisme de fonctionnement  :

  • La première fois que la page est affichée, la taille de la fenêtre n'est pas connue.
  • Si on recharge la page, on récupère ses dimensions.


Maintenant, modifions la taille de la fenêtre.
Il faudra recharger la page 2 fois pour en voir les nouvelles dimensions.
 

  • La première fois, javascript récupère les nouvelles dimensions de la fenêtre.
  • La fois suivante, PHP affiche les dimensions mesurées.


Si on a besoin d'avoir l'information du premier coup, on peut faire une page de redirection.
 
Fichier det_taille.html
 

Code :
  1. <html>
  2. <head>
  3.     <title>Détermination de la taille de la fenêtre du navigateur</title>
  4.     <meta name=author content="Bernard Chardonneau">
  5.     <meta name=copyleft content="Téléchargement autorisé">
  6.     <script>document.cookie = "largeur=" + window.innerWidth + "; expires=0"</script>
  7.     <script>document.cookie = "hauteur=" + window.innerHeight + "; expires=0"</script>
  8.     <meta http-equiv="refresh" content="0; url=aff_taille.php">
  9. </head>
  10. <body>
  11. </body>
  12. </html>


 
Fichier aff_taille.php (partiel)
 

Code :
  1. <html>
  2. <head>
  3.     <title>Affichage de la taille de la fenêtre du navigateur</title>
  4.     <meta name=author content="Bernard Chardonneau">
  5.     <meta name=copyleft content="Téléchargement autorisé">
  6.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. </head>
  8. <body>
  9. <?php
  10.     // ici on met le même script que dans le fichier PHP précédent (ou un autre)
  11. ?>
  12.     <br/>
  13.     <a href=det_taille.html>Réactualiser les dimensions</a>
  14. </body>
  15. </html>


 
Dans le cas de page web avec frames, les dimensions de la fenêtre peuvent être récupérées dans la page contenant le frameset  et utilisées immédiatement dans des morceaux de page générés en PHP.
 
Le bon fonctionnement des scripts ci dessus a été constaté avec plusieurs versions de Firefox, Opera et Google Chrome (bien que ce dernier ne semble pas aimer les serveurs web sur localhost).
 
Tel quels, ils ne fonctionnent pas ni avec Internet Explorer ni même avec Micro$oft Edge.
Je présume que c'est volontaire de la part du fabricant de ces produits, car dans le cas contraire, ils avaient plus de 10 ans pour assurer la compatibilité de leur javascript.

n°2300133
MaybeEijOr​Not
but someone at least
Posté le 03-05-2017 à 15:21:06  profilanswer
 

Sinon en 2017 je ne vois pas trop à quoi ça peut servir. Le CSS permet de faire des choses qui s'adaptent à la résolution.
Au pire il faut raisonner dans l'autre sens, anticiper les résolutions possibles du côté PHP pour ensuite sélectionner la bonne en JS.
Et enfin, toujours dans l'optique on est en 2017, il existe AJAX qui permet d'envoyer des requêtes et les traiter sans recharger la page.
 
Pour finir, même si en effet je ne suis pas partisan des stratégies propriétaires, il suffit de détecter le navigateur utilisé pour écrire une condition permettant de déterminer les bonnes dimensions quelque soit le navigateur utilisé.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [PHP] Récupérer la résolution d'ecran

 

Sujets relatifs
[PHP] fonctionnalités IRC ! ! ! aide - renseignements[ PHP ] Problème d'images
[PHP] Récupération infos navigateurs...Visual Basic - Récupérer les initiales d'un String
[PHP] et fonction "unlink()" sous zindozsPHP / GD : "undefined function: imagecreate()"
[ PHP Flash] Ou trouver ça??[PHP]::éffacement de fichiers
Plus de sujets relatifs à : [PHP] Récupérer la résolution d'ecran


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR