Partage
  • Partager sur Facebook
  • Partager sur Twitter

document.write

Besoin d'aide...

Sujet résolu
    23 juillet 2009 à 21:12:34

    Bonjour,

    Une personne X place ce code sur son site :

    <script src="http://interuser.fr/logo.js" type="text/javascript">
    </script>
    <noscript>
    <p>
    Votre navigateur doit accepter le JavaScript ! Vous pouvez le configurer dans ses paramètres.
    </p>
    </noscript>
    


    Ce code inclus logo.js, qui lui récupère quelques infos sur le visiteur et les transmet à une page PHP qui génère une image.

    Voila logo.js

    /*********************************************
    * Script réalisé par : steber
    * Sert à             : Envoie de variables à page PHP
    * Fait le            : Jeudi 23 Juillet 2009
    ************************************************/
    var date = new Date();
    	var annee = date.getFullYear(); // L'année sur 4 chiffre .
    	var mois =  date.getMonth(); // Le mois
    	var jourNom =  date.getDay(); // Le nom du jour, 0 = Dimanche 1 = Lundi ....
    	var jour =  date.getDate(); // Le jour, va de 1 à 31 
    	var heure =  date.getHours(); // les heures
    	var minutes =  date.getMinutes(); // Les minutes 
    	var seconde =  date.getSeconds(); // Les secondes
    	var dateVoulue = annee + "-" + mois + "-" + jour + " " + heure + ":" + minutes + ":" + seconde; // On créé la date voulue
    	encodeURIComponent(dateVoulue);
    
    var url1 = document.location.href;
    encodeURIComponent(url1);
    data = data + "&url=" + url1;
    
    var url2 = document.location.href.substring( 0 ,document.location.href.lastIndexOf( "/" ) );
    encodeURIComponent(url2);
    data = data + "&urlsite=" + url2;
    var referer = encodeURIComponent(document.referrer);
    
    document.write('<div style="position:absolute;top:0;right:0;margin:0;z-index:9999"><a href="http://interuser.fr/" title="Mesure d\'audience et statistiques professionnelles"><img alt="Mesures d\'audience et statistiques professionnelles de '+url2+'" src="http://interuser.fr/request.php?&date='+dateVoulue+'&page_courante='+url1+'&urlsite='+url2+'&referer='+referer+'" style="border:1px solid rgb(229, 229, 229) ; "/></a></div>');
    


    Et voila request.php :

    <?php
    /*********************************************
    * Script réalisé par : steber
    * Sert à             : Enregistrer le trafic 
    * d'un site 
    * la bd
    * Fait le            : Jeudi 23 Juillet 2009
    *********************************************/
    
    header ("Content-type: image/png");
              
              function degrade($img,$direction,$color1,$color2)
    {
            if($direction=='h')
            {
                    $size = imagesx($img);
                    $sizeinv = imagesy($img);
            }
            else
            {
                    $size = imagesy($img);
                    $sizeinv = imagesx($img);
            }
            $diffs = array(
                    (($color2[0]-$color1[0])/$size),
                    (($color2[1]-$color1[1])/$size),
                    (($color2[2]-$color1[2])/$size)
            );
            for($i=0;$i<$size;$i++)
            {
                    $r = $color1[0]+($diffs[0]*$i);
                    $g = $color1[1]+($diffs[1]*$i);
                    $b = $color1[2]+($diffs[2]*$i);
                    if($direction=='h')
                    {
                            imageline($img,$i,0,$i,$sizeinv,imagecolorallocate($img,$r,$g,$b));
                    }
                    else
                    {
                            imageline($img,0,$i,$sizeinv,$i,imagecolorallocate($img,$r,$g,$b));
                    }
            }
            return $img;
    }
              
              $image = imagecreate(105,17);
              
              $violet = imagecolorallocate($image, 159, 64, 119);
              $gris = imagecolorallocate($image, 229, 229,229);
              $orange = imagecolorallocate($image, 255, 128, 0);
              $bleu = imagecolorallocate($image, 0, 0, 255);
              $bleuclair = imagecolorallocate($image, 156, 227, 254);
              $noir = imagecolorallocate($image, 0, 0, 0);
              $blanc = imagecolorallocate($image, 255, 255, 255);
              
              $image = degrade($image, 'v', array(255, 255, 255), array(159, 64, 119));
              
              imagestring($image, 2, 4, 2, "InterUser.fr", $blanc);
              
              
              imagepng($image);
              
    /*********************************************
    * On récupère toutes les variables envoyées 
    * par $GET et on définit l'IP et l'hôte
    * ainsi que l'OS
    *********************************************/
    
              // On vérifie s'il n'est pas derrière un proxy
              if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    
              $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    
              }
    
              elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
    
              $ip = $_SERVER['HTTP_CLIENT_IP'];
    
              }
    
              else {
    
              $ip = $_SERVER['REMOTE_ADDR'];
    
              }
    
              
              // récupération du domaine du client
    
              $host = gethostbyaddr($ip);
              
              
              function getOS( $ua = '' )
    {
        if( ! $ua  ) $ua = $_SERVER['HTTP_USER_AGENT'];
        $os = 'Syst&egrave;me d&#39;exploitation inconnu';
        
        $os_arr = Array(
                         // -- Windows
                         'Windows NT 6.1'       => 'Windows Seven',
                         'Windows NT 6.0'       => 'Windows Vista',
                         'Windows NT 5.2'       => 'Windows Server 2003',
                         'Windows NT 5.1'       => 'Windows XP',
                         'Windows NT 5.0'       => 'Windows 2000',
                         'Windows 2000'         => 'Windows 2000',
                         'Windows CE'           => 'Windows Mobile',
                         'Win 9x 4.90'          => 'Windows Me.',
                         'Windows 98'           => 'Windows 98',
                         'Windows 95'           => 'Windows 95',
                         'Win95'                => 'Windows 95',
                         'Windows NT'           => 'Windows NT',
                         
                         // -- Linux
                         'Ubuntu'               => 'Linux Ubuntu',
                         'Fedora'               => 'Linux Fedora',
                         'Linux'                => 'Linux',
                         
                         // -- Mac
                         'Macintosh'            => 'Mac',
                         'Mac OS X'             => 'Mac OS X',
                         'Mac_PowerPC'          => 'Mac OS X',
                         
                         // -- Autres ...
                         'FreeBSD'              => 'FreeBSD',
                         'Unix'                 => 'Unix',
                         'Playstation portable' => 'PSP',
                         'OpenSolaris'          => 'SunOS',
                         'SunOS'                => 'SunOS',
                         'Nintendo Wii'         => 'Nintendo Wii',
                         'Mac'                  => 'Mac',
                       );
        
              $ua = strtolower( $ua ); 
              foreach( $os_arr as $k => $v )
              {
                  if( ereg( strtolower( $k ), $ua ) )
                  {
                      $os = $v;
                      break;
                  }
              }
              return $os;
          }
          
          
          $var_nav = explode(' ',$_SERVER['HTTP_USER_AGENT']);
          $var_nav = $var_nav[0];
          $var_message = "".$var_nav;
          if (ereg("MSIE 7", $_SERVER['HTTP_USER_AGENT'])) {
          $var_message .= " MSIE 7";
          } else if (ereg("MSIE 6", $_SERVER['HTTP_USER_AGENT'])) {
          $var_message .= " MSIE 6";
          } else if (ereg("MSIE 5", $_SERVER['HTTP_USER_AGENT'])) {
          $var_message .= " MSIE 5";
          } else if (ereg("MSIE", $_SERVER['HTTP_USER_AGENT'])) {
          $var_message .= " MSIE <= 4";
          } else if (ereg("Firefox/1", $_SERVER['HTTP_USER_AGENT'])) {
          $var_message .= " Firefox 1";
          } else if (ereg("Firefox/2", $_SERVER['HTTP_USER_AGENT'])) {
          $var_message .= " Firefox 2";
          } else if (ereg("Firefox/3", $_SERVER['HTTP_USER_AGENT'])) {
          $var_message .= " Firefox 3";
          } else if (ereg("Firefox/", $_SERVER['HTTP_USER_AGENT'])) {
          $var_message .= " Firefox";
          } else if (ereg("Opera/", $_SERVER['HTTP_USER_AGENT'])) {
          $var_message .= "Opera";
          } else if (ereg("Mozilla/", $_SERVER['HTTP_USER_AGENT'])) {
    
          $var_message .= " Mozilla compatible Netscape";
          } else {
          $var_message .= " Non d&eacute;termin&eacute;";
          
          $page_courante = $_GET['url1'];
          $urlsite = $_GET['url2'];
          $date = $_GET['date'];
          $referer = $_GET['referer'];
          $navigateur = $var_message;
          $os = getOS($_SERVER['HTTP_USER_AGENT']);
          $sessid = $_REQUEST['PHPSESSID'];
              
    /*********************************************
    * On se connecte à la bd et on cherche à quel 
    * pseudo correspond l'URL répertoriée	 
    *********************************************/
              include("includes/connexion_db.php");
              
              $requestA = mysql_query('SELECT pseudo, nomsite FROM membres WHERE urlsite = "'. $urlsite .'"') or die('Erreur SQL Requête A : '.mysql_error());
              $dataA = mysql_fetch_array($requestA);
              $pseudo = $dataA['pseudo'];
              
    /*********************************************
    * On enregistre les données dans la bd et 
    * fermeture de la connexion à la bd
    *********************************************/
              $requestB = mysql_query('INSERT INTO infos_visiteur VALUES("", "'.$pseudo.'", "'.$page_courante.'", "'.$ip.'", "'.$host.'", "'.$referer.'", "'.$date.'", "'.$sessid.'")') or die('Erreur SQL Requête B : '.mysql_error());
              
              $requestC = mysql_query('INSERT INTO materiel VALUES("", "'.$pseudo.'", "'.$navigateur.'", "'.$os.'", "'.$date.'")') or die('Erreur SQL Requête C : '.mysql_error());
              
              mysql_close();
    ?>
    


    La page de test est ici : http://manulion.sfhost.net/test.html, qui inclus logo.js via le <script src="....>

    Vous voyez que la page est blanche alors qu'elle devrait afficher une image !

    Une solution ?

    Merci chez Zéros ! ^^
    • Partager sur Facebook
    • Partager sur Twitter
      23 juillet 2009 à 22:53:36

      la console d'erreur de firefox me renvoi
      data isn't defined
      • Partager sur Facebook
      • Partager sur Twitter
        23 juillet 2009 à 22:59:01

        Merci ja vais voir ça. Une question, comment tu obtien cette console dans Firebug, je la trouve pas ? C'est la truc qui faut activer mais même activer ......
        • Partager sur Facebook
        • Partager sur Twitter
          24 juillet 2009 à 0:31:25

          Bah déjà y'a la console d'erreur de Firefox, dans le menu Outils> Console d'Erreur

          Et dans Firebug, il faut ouvrir Firebug et recharger la page. S'il y a une erreur elle sera mentionnée dans la barre de status en bas à droite.
          • Partager sur Facebook
          • Partager sur Twitter
            24 juillet 2009 à 0:45:35

            Merci, mais mon script beug toujours!
            • Partager sur Facebook
            • Partager sur Twitter
              24 juillet 2009 à 0:52:09

              As-tu résolu le problème de la variable data ?

              Ligne 19, tu écris :
              data = data + "&url=" + url1;

              Mais data n'a pas été déclarée au préalable... donc le code plante...

              Il faudrait, je pense, que tu places précédemment un truc du genre...
              var data = "";
              • Partager sur Facebook
              • Partager sur Twitter
                24 juillet 2009 à 1:00:24

                C'est que j'ai fait du copier coller de mon ancien script, et j'ai oublié de supprimer data. Maintenant, data est supprimé, mais le script beug toujours...
                • Partager sur Facebook
                • Partager sur Twitter
                  24 juillet 2009 à 1:04:49

                  Bah remontre le code... :-°
                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 juillet 2009 à 1:19:30

                    var date = new Date();
                    	var annee = date.getFullYear(); // L'année sur 4 chiffre .
                    	var mois =  date.getMonth(); // Le mois
                    	var jourNom =  date.getDay(); // Le nom du jour, 0 = Dimanche 1 = Lundi ....
                    	var jour =  date.getDate(); // Le jour, va de 1 à 31 
                    	var heure =  date.getHours(); // les heures
                    	var minutes =  date.getMinutes(); // Les minutes 
                    	var seconde =  date.getSeconds(); // Les secondes
                    	var dateVoulue = annee + "-" + mois + "-" + jour + " " + heure + ":" + minutes + ":" + seconde; // On créé la date voulue
                    	encodeURIComponent(dateVoulue);
                    
                    var url2 = document.location.href.substring( 0 ,document.location.href.lastIndexOf( "/" ) );
                    encodeURIComponent(url2);
                    
                    document.write('<div style="position:absolute;top:0;right:0;margin:0;z-index:9999"><a href="http://interuser.fr/" title="Mesure d\'audience et statistiques professionnelles"><img alt="Mesures d\'audience et statistiques professionnelles de '+url2+'" src="http://interuser.fr/request.php?date='+dateVoulue+'&urlsite='+url2+'" style="border:1px solid rgb(229, 229, 229);" /></a></div>');
                    


                    Il y a eu des lignes supprimées, qui seront gérées côtés serveur, PHP, l'histoire d'être sur que le bug ne vient pas de la longueur de l'URL, je le rappelle qui ne doit pas dépasser 255 caractères.

                    Merci cher Zéros ! ;)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 juillet 2009 à 1:27:00

                      Oui, quelqu'un pourrait m'aider du côté PHP ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 juillet 2009 à 17:33:58

                        Déjà réglé, merci quand même...
                        • Partager sur Facebook
                        • Partager sur Twitter

                        document.write

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown