Aller au contenu

Dimensions d'écran en PHP


francoisch

Sujets conseillés

bonjour

Jessaye dobtenir en Javascript et d'utiliser en PHP, la résolution de l'écran : width et height.

Jessaie avec ce code de test :

echo "<script language=\"JavaScript\"> <!-- document.location=\"$PHP_SELF?r=1&Largeur=\"+screen.width+\"&Hauteur=\"+screen.height; //--> </script>"; 
echo 'size x ' . $_GET['Largeur'] . '<br/>';

mais je ne récupère rien.

Je dois ensuite utiliser les variables Largeur et Hauteur en PHP, pas en Javascript.

Merci par avance de maider à trouver la solution.

F

Lien vers le commentaire
Partager sur d’autres sites

salut,

en js, "écrire" s'écrit

document.write()

...

ce que je veux dire, c'est que là en l'occurrence, ton js est "muet"...

Modifié par georges
Lien vers le commentaire
Partager sur d’autres sites

Salut,

Juste pour l'idée

<?php
if (isset($_GET['largeur']) AND isset($_GET['hauteur'])) {
// Affichage des variables
$largeur_ecran = $_GET['largeur'];
$hauteur_ecran = $_GET['hauteur'];

$hauteur_bloc = $hauteur_ecran-100;


} else {
// passage des variables de dimensions du java script au php par $_GET
;


echo "<script type=\"text/javascript\">\n";

echo "if (document.body) {
var larg = (document.body.clientWidth);
var haut = (document.body.clientHeight);
} else {
var larg = (window.innerWidth);
var haut = (window.innerHeight);
}";

echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
. "&largeur=\" + larg + \"&hauteur=\" + haut;\n";

echo "</script>\n";
exit();
}
?>

Lien vers le commentaire
Partager sur d’autres sites

bonjour et merci de vos réponses.

Comme je suis un petit joueur au jeu des développements JS et Php, je m'interroge sur ce que vous me dites.

Oui, mon Js est muet, il ne donne rien mais je ne sais pas comment le faire parler.

Sinon, j'ai essayé le code de Ghost pour voir ce que ça donne: rien; j'imagine que ça n'est qu'un exemple mais, pour moi, c'est déjà trop loin. J'ai essayé de le comprendre mais sans succès.

Merci de votre aide mais je ne suis pas encore arrivé; il faut que je continue à creuser ce sujet.

Merci par avance à ceux qui pourraient complèter la leçon.

Francois

Lien vers le commentaire
Partager sur d’autres sites

Ghost, en essayant de faire une lecture de ton script:

- les 4 premières lignes en Php disent que si le GET fonctionne, les variables largeur_ecran et hauteur_ecran sont initialisées

ce que je ne vois pas, c'est où le GET va chercher les valeurs (pour moi, GET prend dans l'URL)

- ensuite le ELSE (le GET n'a pas marché) nous met en Js pour initialiser larg et haut et lancer un ordre

ce que je ne vois pas, c'est l'intérêt de faire du JS après le Php

Dans mon idée, pour trouver ces valeurs, on fait d'abord du Js et on passe les valeurs trouvées en Php; non?

C'est ce que j'essaie de faire sans y arriver; j'essaie de comprendre où sont mes erreurs et ça ne m'est pas facile.

Merci à tous.

Francois

Lien vers le commentaire
Partager sur d’autres sites

Encore moi; pour tout vous dire, j'essaie de m'inspirer de cet exemple:

<script type="text/javascript">
<!-- debut
function resolution() {
document.location="<?php echo $_SERVER['PHP_SELF']; ?>?width="+screen.width+"&height="+screen.height;
}
// fin -->
</script>
</head>

<?php
if(!isset ($_GET['width']) and !isset ($_GET['height'])){
echo '<body onload="resolution();">';
}else{
echo '<body>';
echo 'Votre résolution est ' . $_GET['width'] . ' * ' . $_GET['height'];
}
?>

Simplement, avec cette solution, il faut de j'inscrive le Js en ordres Php.

Il me reste un bout à faire.

Francois

Lien vers le commentaire
Partager sur d’autres sites

Re,

Désolé, je suis allé un peu vite:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<style>

</style>
<head>
<title></title>
</head>
<body>
<?php
if (isset($_GET['largeur']) AND isset($_GET['hauteur'])) {
// Affichage des variables
$largeur_ecran = $_GET['largeur'];
$hauteur_ecran = $_GET['hauteur'];

echo 'largeur de l\'écran : '.$largeur_ecran.' px <br/> Hauteur de l\'écran : '.$hauteur_ecran.' px <br/>';
echo 'De l\'écran et non de la page !!!';

} else {
// passage des variables de dimensions du java script au php par $_GET

echo "<script type=\"text/javascript\">\n";
echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
. "&largeur=\" + screen.width + \"&hauteur=\" + screen.height;\n";
echo "</script>\n";
exit();
}
?>


</body>
</html>

La seule manière que je connaisse de passer une variable de JS à PHP, c'est par $_GET donc on teste les variables, si elles existent ... on continue le code sinon on passe à JS qui détermine $longueur et $largeur et qui recharge la page ...

Pour le $_get que tu utilises aussi, il est bien "transmis" par l'url à condition de changer de page ou de recharger la même, c'est là que tu devais coincer.

Voilou

Ps: le calcul donne la résolution de l'écran et non la largeur et longueur de la page du navigateur, ça c'est une autre histoire qui est très peu fiable pour qui serait tenter de l'utiliser pour la mise en page d'un code html.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Il serait étonnant que tu aies réellement besoin de connaitre la largeur et la hauteur de l'écran en php. La plupart (quasiment tous) des besoins se traduisent en javascript, et non en php :

En gros, au lieu de passer les variables de javascript à php, fais ce dont tu as besoin en javascript, au lieu de 'revenir' au php.

Pour bien comprendre, il faut savoir que php est exécuté sur le serveur, alors que javascript est exécuté sur le poste 'client', autrement dit sur le poste de l'internaute. Donc >

Tu fais ton programme en php, et tu envoies le résultat sur le navigateur du client, et tu laisses javascript récupérer la hauteur/largeur, et la traiter, sans refaire appel au serveur, à php.

Le code de Ghost utilise une méthode assez répandue >

IF (condition){

code si vrai

}

ELSE{

code si faux

}

Comme ton code retournera 'faux' (comme tu l'as signalé), ca sera la boucle 'ELSE' qui sera exécutée.

Or celle ci renvoie sur la même page, avec les valeurs de largeur/hauteur.

Le code s'exécute alors une seconde fois, et là, les valeurs sont initialisées (comme signalé ci-dessus), et c'est la boucle 'IF' qui s'exécute.

Le problème de ce script est qu'il fait appel à la page 2 fois :

une fois pour initialiser la hauteur/largeur,

une fois pour prendre en compte cette hauteur/largeur.

Le problème est que tu n'as pas trop le choix, pour retourner les valeurs à ton php. Seulement, comme je le mentionnais plus haut, il serait peut être plus facile de faire la suite en javascript.

Pour cela, il nous faudrait déjà savoir de quoi il en retourne par la suite :

Pourquoi as tu besoin des hauteur/largeur ?

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...