Page 1 sur 1

Passage de variable JS vers PHP ne fonctionne pas ...

Publié : 25 mai 2004, 00:41
par Ave Cox
Voilà, mon problème est le suivant : je désire récuperer la taille de l'écran des visiteurs de mon site dans le but de faire de belles statistiques sur la config des visiteurs :)
Le problème est que n'ayant pas trouvé de script récupérant les valeurs de largeur, hauteur et nbre de couleur (screen.colorDepth en JS (c pas ds ce script pcq je fais juste des tests ici ;) )), je me suis dit que j'allais faire ca en récupérant les valeurs javascript et les envoyer vers le php pour pouvoir les récupérer dans une base de donnée :)

Le probleme, c'est que le script fonctionne a merveille dans IE mais pas dans notre navigateur préféré Mozilla Firefox ... ce qui signifie surement qu'il y a une erreur dans le code mais la question est : "ou?" et ca je trouve pas lol

Sinon la console javascript me dit que "ecran is not defined" mais ca ne m'aide pas des masses pcq je vois pas en quoi il est pas défini ...

Donc voici le code de la page "test screen.php" :

Code : Tout sélectionner

<?
if (!isset($h)) { 
  echo'<form name="ecran" method="post" action="test screen.php" onsubmit="send_ecran();">';
  echo'<input type="hidden" name="l" />';
  echo'<input type="hidden" name="h" />';
  echo'<input name="go" type="submit" />';
  echo'</form>';
  echo'<script language="javascript">';
  echo'function send_ecran(){';
  echo'ecran.l.value=screen.width;';
  echo'ecran.h.value=screen.height;';
  echo'return ecran.h.value;return ecran.l.value;';
  echo'}';	
  echo"ecran.go.click();"; // simule le clic sur le bouton du formulaire
  echo'</script>';
}else {
  $largeur=$_POST['l'];
  $hauteur=$_POST['h'];
  echo "l : $largeur <br /> h : $hauteur <br />";
}
?>
Merci d'avance pour votre aide :)

Publié : 25 mai 2004, 01:01
par simous
J'ai trouvé ceci : http://www.allhtml.com/php/php469.php

Testé avec IE et Mozilla sans pb :)

Publié : 25 mai 2004, 01:06
par olab
Change ecran.go.click() par document.forms.ecran.submit() et ça marchera.

Publié : 25 mai 2004, 03:06
par Ave Cox
oki merci beaucoup :)

en fait suffit sait de mettre "document.forms." devant les ecran.l.value et ecran.h.value et ca marche :) mais maintenant ca bug dans IE lol ... bon jvais faire 2 scripts séparés sauf si vous avez des idées ;)

Publié : 25 mai 2004, 10:25
par olab
Utilise le script de simous (comme simous macfly ?) alors.

Publié : 26 mai 2004, 21:00
par Ave Cox
Dans mon cas ce script n'est pas tres pratique et puis envoyer ces variables la dans l'url ca me tente pas trop, j'aime autant balancer ca en POST comme ca l'utilisateur du site n'y verra que du feu :)

jvais essayer de solutionner le probleme ... jvous mets la source dés que j'ai réussi ;) si j'y arrive lol

Publié : 26 mai 2004, 23:07
par olab
Très bien, et avec ça :

Code : Tout sélectionner

<?php
if (!isset($h)) {
  echo '<form name="ecran" id="ecran" method="post" action="test%20screen.php">';
  echo '<input type="hidden" name="l" />';
  echo '<input type="hidden" name="h" />';
  echo '<input type="submit" />';
  echo '</form>';
  echo '<script type="text/javascript">';
  echo 'function send_ecran(){';
  echo 'var ecran = document.getElementById("ecran");';
  echo 'ecran.l.value=screen.width;';
  echo 'ecran.h.value=screen.height;';
  echo '}';
  echo 'send_ecran();';
  echo 'document.getElementById("ecran").submit();';
  echo'</script>';
}else {
  $largeur=$_POST['l'];
  $hauteur=$_POST['h'];
  echo "l : $largeur <br /> h : $hauteur <br />";
}
?>
Ca marche pour les deux.

Publié : 28 mai 2004, 19:39
par Ave Cox
t'es sur que ca fonctionne? pcq j'ai testé hier et ca fonctionnait pas dans IE ... ou alors j'ai des merdes avec IE ...

Publié : 29 mai 2004, 11:08
par olab
Je viens à l'instant de tester en mode php (je faisais que le test sur l'html), et je peux t'assurer que ça marche sous FFox et IE6

Publié : 29 mai 2004, 22:31
par Ave Cox
ouais je confirme, j'ai mis le script sur mon site et ca marche dans tous les navigateurs de mes visiteurs .... bizarre que ca marche pas avec IE sur mon pc ... doit y avoir un bug ou bien peut etre que javascript est pas activé avec IE ... va savoir... j'utilise ce navigateur préhistorique uniquement pour tester des sites que je fais donc je sais pas si il est bien configurer lol

Cela dit, merci pour ton aide :)