Mettre résolution d'écran en variable php

babatt92 Messages postés 33 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 10 juillet 2010 - 12 mai 2008 à 14:56
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 13 mai 2008 à 09:36
Bonjour,
J'ai mis la résolution d'écran en variable php.
Le problème est vraiment étrange (mon code est ci-dessous). Sur une résolution par exemple 1600 le script rentre dans la première condition. Merci de votre aide.

$Resolution  = "<script type="text/javascript">document.write(screen.width);</script>";


echo $Resolution."
";


If ($Resolution <= 1024) {
 echo "Yes ".$Resolution." = 1024";
 $Nmax = 9;    // nombre par page
 $Ligne  = 3;
} Else {
 echo "NO ".$Resolution." = 1024";
 $Nmax = 16;    // nombre par page
 $Ligne  = 4;
}

7 réponses

babatt92 Messages postés 33 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 10 juillet 2010
12 mai 2008 à 18:32
Même si je fais un rafraichissement de la page cela n'est pas pris en compte.
Comment faire autrement?
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
12 mai 2008 à 20:56
Hello,

je ne vais pas répondre directement à ta question car il y a plein de sites qui te donneront la réponse si tu cherches un peu.

Par contre je vais te donner un conseil : faire un site qui s'occupe de la taille de l'écran c'est vraiment la plaie.
Fais des pages à largeur fixe ou extensibles automatiquement (en %), mais évite les pages qui doivent être calculées d'après la résolution détectée par javascript.

à+
0
babatt92 Messages postés 33 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 10 juillet 2010
12 mai 2008 à 21:30
Le site est en % justement. Il y a un paginateur avec 9 produits 3 lignes et 3 colonnes. Donc au delà de 1200 en résolution je voudrais mettre 4 lignes et 4 colonnes pour occuper davantage d'espace.
J'ai trouvé des sites avec des redirections en passant en get mais autre chose. J'ai besoin de cette modification que sur une page.
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
12 mai 2008 à 22:11
Essaie d'utiliser les css en mettant les produits en float plutôt, qu'ils aillent à la ligne quand il reste de la place etc. Enfin si tu veux.

Si tu tiens à ta détection demande sur le forum javascript, ils ont surement une réponse toute prête.

à+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
babatt92 Messages postés 33 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 10 juillet 2010
12 mai 2008 à 23:51
Trouvé comme un grand

$Reso = "<script type="text/javascript">document.write(screen.width);</script>";
$Serveur = $_SERVER["REQUEST_URI"];


If (empty($Reso)) {
 header("Status: 301 Moved Permanently", false, 301);
 header("Location: ".$Serveur."&Reso=".$Reso);
 exit(); 
}
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
13 mai 2008 à 09:36
Hello,

sauf que non, ça ne marche pas. Quand PHP est executé, Javascript ne l'a pas encore été? Donc $Reso, pour PHP, n'est pas égal à la résolution mais à la chaîne "<script type="text/javascript">document.write(screen.width);</script>".
Evidemment, si tu fais un echo, tu verras la résolution puisque quand l'output sera balancé, le Javascript sera interprété...mais tu ne pourras pas t'en servir pour savoir en quelle résolution ton utilisateur se trouve.
La preuve par l'exemple, sachant que je suis en 1680 (change cette valeur par la largeur de ton écran) :
<?php
$Reso = "<script type="text/javascript">document.write(screen.width);</script>";
$Serveur = $_SERVER["PHP_SELF"];

If (empty($Reso)) {
 header("Status: 301 Moved Permanently", false, 301);
 header("Location: ".$Serveur."&Reso=".$Reso);
 exit();
} elseif($Reso === '1680') {
    echo 'OK '.$Reso;
} else {
    echo 'KO '.$Reso;
}
?>

Tu verras que tu vas systématiquement entrer dans le dernier else.
0
gibozsec Messages postés 318 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 11 mars 2010
12 mai 2008 à 15:54
Bonjour,

Le php est interprété par le serveur et le javascript par le client.

En gros, le code php est transformé par le serveur en page html puis envoyé à ton client ou le code javascript s'execute éventuellement (s'il ne l'a pas désactivé par exemple).

Tu ne peux donc pas récupèrer la résolution de cette manière.

Grrrrrrrrrrr
-1
Rejoignez-nous