Se connecter / S'enregistrer
Votre question

taille de fenetre (PHP)

Tags :
  • Javascript
  • Programmation
Dernière réponse : dans Programmation
11 Août 2005 11:17:52

Bonjour,

Existe-t-il une fonction php qui permet de recuperer la taille de la fenetre du navigateur actuelle. Si non comment puis je faire???
Merci.

Autres pages sur : taille fenetre php

11 Août 2005 11:19:48

La taille de la fentre ou la resolution ? sinon pour la rsolution tu doit genere a la method $_GET et en javascript le lien car en php tu ne peu pas recuperer directement la resolution d'ecran mais en javascript oui mais comme le javascript est executer apres ben tu est obiger de faire une etape en plus
12 Août 2005 09:03:58

Bon j'ai pas tout comprit de ton explication mais pour te repondre c'est bien la taille de la fenetre que je veux savoir et pas la resolution, je c'est que la resolution tu peux la recuperer en Javascript.
Contenus similaires
12 Août 2005 10:03:13

ça ne change pas le fait est que la taille de la fenêtre, la résolution tout ça se passe sur "le client"(le visiteur) et ton script PHP s'execute sur le serveur avant d'envoyer la page au client !

Et comme l'informatique ne prévoit pas encore l'avenir ! tu est obligé de faire que ce soit le client qui t'envoye ces informations !

Tu peux le faire de plein de maniere differente ! un iframe avec les valeur en paramètre ! les cookies ! redirection avec les valeurs qui passe par POST ou GET !

Tu as le choix !
12 Août 2005 15:11:34

Citation :
recuperer la taille de la fenetre du navigateur actuelle

Pour quel usage?

En effet l'utilisateur peut la modifier à tout moment donc c'est délicat de travailler en fonction de cette taille. En revanche vous pouvez paramètrer toutes les tailles de votre page en "%": du coup chaque élément ajustera automatiquement sa taille en fonction des modifications de la taille de la fenêtre.
12 Août 2005 23:38:14

Ok donc il faut que je passe par une method get met je l'obtien comment cette taille????
22 Août 2008 17:55:12

Je me permets un post sur ce message car il remonte haut dans google. Désolé pour le UP.

Je vais juste tenter une explication plus claire de ce qui est dit :
- PHP est un langage coté serveur, c'est pour ça qu'on ne peut pas créer d'animations sur l'explorateur du client, et plus simplement que l'on a des infos basiques sur le client. Créez une page HTML et mettez dedans:
<php>
phpinfo();
</php>

Vous verrez l'ensemble des informations récupérable. Pas trace de la taille de la fenêtre.

- Sur le client vous pouvez faire du javascript. Une solution :
document.body.clientWidth
document.body.clientHeight

à lire ici : http://www.java.scripts-fr.com/scripts.php?js=23. Il existe d'autres méthodes. Le problème de cette solution c'est qu'il faut transmettre à PHP les infos (très dur à mon avis) ou tout redimensionner en javascript.

- La solution du CSS est bonne car on peut mettre un % de l'écran. Mais moi je souhaite afficher des images et ne les redimensionner que si elle dépasse l'écran, redimensionner 32x32 -> 1024x768 c'est très limite !

- Une dernière solution c'est d'utiliser lightbox ou une variante qui redimensionne comme : http://blog.hma-info.de/2008/04/09/latest-lightbox-v2-w... (si le but est d'afficher des images en plein écran comme moi)

Encore désolé pour le UP est bon courage pour les googliens.
22 Février 2009 20:21:37

Comme on n'est plus à un UP près :sarcastic:  pour compléter les infos données par pnume et le principe proposé plus avant d'utiliser la méthode $_GET, un petit exemple d'application de celle-ci.

Exemple : La page "exemple.php" est appellée par l'adresse "http://www.monsite.fr/exemple.php"

Contenu (simplifié) de cette page :
  1. <html>
  2. <head>
  3. <?php
  4.  
  5. // On vérifie si les valeurs de "width" et "height" sont passées
  6. // par l'URL (avec la méthode $_GET donc). Si ce n'est pas le cas,
  7. // on demande d'executer le javascript ci-dessous.
  8.  
  9. if (!$_GET["width"] && !$_GET["height"]) :
  10.  
  11. ?>
  12. <script type="text/javascript">
  13. <!--
  14. // Récupération de la largeur et la hauteur avec une conditionnelle
  15. // selon le navigateur utilisé (IE, ancien ou autre).
  16. if (document.body) {
  17. var largeur = (document.body.clientWidth);
  18. var hauteur = (document.body.clientWidth);
  19. }
  20. else {
  21. var largeur = (window.innerWidth);
  22. var hauteur = (window.innerHeight);
  23. }
  24. // Redirection vers la même page en passant par l'URL les valeurs
  25. // obtenues. L'URL ainsi demandée sera alors de la forme :
  26. // "<a href="http://www.monsite.fr/exemple.php?width=1280&height=900" rel="nofollow" target="_blank">http://www.monsite.fr/exemple.php?width=1280&height=900</a>"
  27. document.location.href="<a href="http://www.monsite.fr/exemple.php?width=" rel="nofollow" target="_blank">http://www.monsite.fr/exemple.php?width=</a>"+largeur+"&height="+hauteur;
  28. -->
  29. </script>
  30. <?php
  31. endif; // fin de la condition
  32. ?>
  33. </head>
  34. <body>
  35. <?php
  36.  
  37. // Enfin selon que les valeurs de "width" et "height" passées
  38. // par l'URL ont été trouvées ou non, on execute ce qu'on
  39. // souhaite en PHP.
  40.  
  41. if ($_GET["width"] && $_GET["height"]) {
  42. $largeur = intval($_GET["width"]);
  43. $hauteur = intval($_GET["height"]);
  44. echo "Les dimensions de la fenêtre actuelle sont de $largeur par $hauteur pixels.";
  45. }
  46. else
  47. {
  48. echo "Les valeurs de hauteur et largeur n'ont pas été trouvées ou sont incomplètes.";
  49. }
  50.  
  51. ?>
  52. </body>
  53. </html>

En espérant que ça puisse également aider quelques googliens ;) 
Rumores
3 Mai 2017 12:01:55

La discussion est effectivement ancienne, mais le problème consistant à récupérer dans PHP des information disponibles seulement avec javascript ne semble pas faire l'objet de solutions.

On peut effectivement se demander pourquoi des paramètres comme la taille de la fenêtre ne sont pas disponibles dans phpinfo ( ) alors qu'on a le modèle de navigateur :??: 

L'idée de Rumores consistant à générer avec javascript un lien de redirection php dans lequel les dimensions sont passées via la méthode get est intéressante. mais j'en ai trouvé une autre 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 :

<html>

<head>
<title>Détermination et affichage de la taille de la fenêtre du navigateur</title>
<meta name=author content="Bernard Chardonneau">
<meta name=copyleft content="Téléchargement autorisé">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

<body>
<script>document.cookie = "largeur=" + window.innerWidth + "; expires=0"</script>
<script>document.cookie = "hauteur=" + window.innerHeight + "; expires=0"</script>

<?php
if (isset ($_COOKIE ['largeur']))
{
echo " Largeur = ".$_COOKIE ['largeur']." pixels<br/>\n";

if (isset ($_COOKIE ['hauteur']))
echo " Hauteur = ".$_COOKIE ['hauteur']." pixels<br/>\n";
else
echo " Hauteur non disponible, réafficher la page<br/>\n";
}
else
{
if (isset ($_COOKIE ['hauteur']))
{
echo " Hauteur = ".$_COOKIE ['hauteur']." pixels<br/>\n";
echo " Largeur non disponible, réafficher la page<br/>\n";
}
else
{
echo " Largeur et hauteur non disponibles, réafficher la page<br/><br/>\n";
echo " Si ça ne marche toujours pas vérifiez les points suivants :\n";
echo " <ul>\n";
echo " <li>votre navigateur web doit accepter les cookies</li>\n";
echo " <li>votre navigateur web doit utiliser javascript</li>\n";
echo " <li>votre navigateur web doit être compatible</li>\n";
echo " </ul>\n";
}
}
?>
</body>

</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

<html>

<head>
<title>Détermination de la taille de la fenêtre du navigateur</title>
<meta name=author content="Bernard Chardonneau">
<meta name=copyleft content="Téléchargement autorisé">
<script>document.cookie = "largeur=" + window.innerWidth + "; expires=0"</script>
<script>document.cookie = "hauteur=" + window.innerHeight + "; expires=0"</script>
<meta http-equiv="refresh" content="0; url=aff_taille.php">
</head>

<body>
</body>

</html>

Fichier aff_taille.php (partiel)

<html>

<head>
<title>Affichage de la taille de la fenêtre du navigateur</title>
<meta name=author content="Bernard Chardonneau">
<meta name=copyleft content="Téléchargement autorisé">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

<body>
<?php
// ici on met le même script que dans le fichier PHP précédent (ou un autre)
?>
<br/>
<a href=det_taille.html>Réactualiser les dimensions</a>
</body>

</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 avec Internet Explorer et 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.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS