Récupération d'une résolution php/javascript
Résolu/Fermé
YoshK
Messages postés
26
Date d'inscription
samedi 21 mars 2009
Statut
Membre
Dernière intervention
16 mars 2011
-
14 oct. 2009 à 12:25
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 15 oct. 2009 à 10:19
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 15 oct. 2009 à 10:19
A voir également:
- Récupération d'une résolution php/javascript
- Telecharger javascript - Télécharger - Langages
- Easy php - Télécharger - Divers Web & Internet
- Convertisseur récupération de texte - Guide
- Récupérer une vidéo youtube - Guide
- Problème résolution écran 1920x1080 - Forum Windows 10
6 réponses
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
14 oct. 2009 à 13:24
14 oct. 2009 à 13:24
Bonjour,
Attention, le PHP est une langage qui s'exécute coté serveur, alors que le javascript s'exécute coté client.
Conclusion, dans ton code, ce qui est mis dans ta variable PHP n'est pas la résultante de ton code javascript, mais ton code lui même (sous forme de texte)
L'erreur affiché est donc plutôt logique et normale. Tu ne peux pas procéder de cette façon.
Ce qu'il faut faire :
Gérer des fichiers CSS différent, que tu charge en fonction de la résolution détectée.
Par exemple, tu as fais 3 fichiers CSS dans lesquels tu as définie 3 classes de style, une pour chaque style de bannière / menu (il faut donc que tu traduise $bannière et $menu sous forme de propriété CSS)
Ensuite, avant de chargé ta page PHP courante, tu vas exécuter le code javascript qui permet de détecter la résolution, et en fonction de la résolution (toujours en code javascript donc), tu vas charger le fichier CSS correspondant.
C'est une manière comme une autre de le faire.
Attention, le PHP est une langage qui s'exécute coté serveur, alors que le javascript s'exécute coté client.
Conclusion, dans ton code, ce qui est mis dans ta variable PHP n'est pas la résultante de ton code javascript, mais ton code lui même (sous forme de texte)
L'erreur affiché est donc plutôt logique et normale. Tu ne peux pas procéder de cette façon.
Ce qu'il faut faire :
Gérer des fichiers CSS différent, que tu charge en fonction de la résolution détectée.
Par exemple, tu as fais 3 fichiers CSS dans lesquels tu as définie 3 classes de style, une pour chaque style de bannière / menu (il faut donc que tu traduise $bannière et $menu sous forme de propriété CSS)
Ensuite, avant de chargé ta page PHP courante, tu vas exécuter le code javascript qui permet de détecter la résolution, et en fonction de la résolution (toujours en code javascript donc), tu vas charger le fichier CSS correspondant.
C'est une manière comme une autre de le faire.
YoshK
Messages postés
26
Date d'inscription
samedi 21 mars 2009
Statut
Membre
Dernière intervention
16 mars 2011
14 oct. 2009 à 15:01
14 oct. 2009 à 15:01
Merci pour ton aide, une fois posé le problème était effectivement évident. J'ai cependant trouvé une solution autre, l'utilisation d'une page supplémentaire contenant un formulaire caché pour transmettre la résolution de l'utilisateur:
récupéré par la suite sur la page principale du site:
la redirection est en réalité instantanée mais on prévoit le cas ou le serveur serait saturé...
<body onload="document.formRes.resolution.value = screen.width; document.formRes.submit();"> <p style="text-align:center">Vous allez être redirigé dans quelques secondes...<br/> si la redirection automatique ne fonctionne pas cliquez <a href="accueil.php">ici</a></p> <form method="post" action="accueil.php" name="formRes"> <input type="hidden" name="resolution"> </form> </body>
récupéré par la suite sur la page principale du site:
$size = $_POST['resolution'];
la redirection est en réalité instantanée mais on prévoit le cas ou le serveur serait saturé...
YoshK
Messages postés
26
Date d'inscription
samedi 21 mars 2009
Statut
Membre
Dernière intervention
16 mars 2011
14 oct. 2009 à 15:42
14 oct. 2009 à 15:42
J'ai cependant un autre problème, la résolution est enregistré dans une variable de session pour être effective sur toute les pages de mon site web.
Voila la nouvelle allure de mon include PHP:
Le problème est que lorsque j'accède à une nouvelle page du site, j'obtiens un jolie message d'erreur:
"Notice: Undefined index: resolution in C:\...\monInclude.php on line 21"
la ligne 21 correspondant au début de mon "if"...
Voila la nouvelle allure de mon include PHP:
<?php if ( isset($_POST['resolution'])) $_SESSION['resolution'] = $_POST['resolution']; if ($_SESSION['resolution'] <= 900) { $banniere = 800; $menu = 'P'; } else if ($_SESSION['resolution'] >= 1200) { $banniere = 1280; $menu = 'G'; } else { $banniere = 1024; $menu = 'M'; } ?>
Le problème est que lorsque j'accède à une nouvelle page du site, j'obtiens un jolie message d'erreur:
"Notice: Undefined index: resolution in C:\...\monInclude.php on line 21"
la ligne 21 correspondant au début de mon "if"...
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
14 oct. 2009 à 16:59
14 oct. 2009 à 16:59
Est-ce que tu as bien l'instruction 'session_start()' au début de toutes tes pages PHP ?
Peux-tu mettre le code entier (pour l'accueil)?
Au pire, essai de mettre l'identifiant dans ton champ caché (sur ta page intermédiaire) (<input type='hidden' id='resolution' name='resolution' ... />)
Peux-tu mettre le code entier (pour l'accueil)?
Au pire, essai de mettre l'identifiant dans ton champ caché (sur ta page intermédiaire) (<input type='hidden' id='resolution' name='resolution' ... />)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
YoshK
Messages postés
26
Date d'inscription
samedi 21 mars 2009
Statut
Membre
Dernière intervention
16 mars 2011
15 oct. 2009 à 08:14
15 oct. 2009 à 08:14
Excellente analyse kij ! C' étais un test ;)
C'est clair et net je suis malade... J'ai oublié d'inclure le fichier qui comporte les fonction php de connexion a la BDD et... Le "session_start" :s
Encore merci à vous deux !
C'est clair et net je suis malade... J'ai oublié d'inclure le fichier qui comporte les fonction php de connexion a la BDD et... Le "session_start" :s
Encore merci à vous deux !
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
15 oct. 2009 à 10:19
15 oct. 2009 à 10:19
Je sais bien que je suis skyzo, mais tu peux te contenter de ne remercier qu'un seul moi ;)
Bon courage pour la suite.
Bon courage pour la suite.