예제 #1
0
 /**
  * Output binary image from base-64 encoded data.
  *
  * @deprecated 1.5.1
  *
  * @param string $imageData Base-64 encoded image data (via $_POST)
  */
 public static function outputBinaryImage()
 {
     Piwik::checkUserHasSomeViewAccess();
     $rawData = Piwik_Common::getRequestVar('imageData', '', 'string', $_POST);
     // returns false if any illegal characters in input
     $data = base64_decode($rawData);
     if ($data !== false) {
         // check for PNG header
         if (Piwik_Common::substr($data, 0, 8) === "‰PNG\r\n\n") {
             header('Content-Type: image/png');
             // more robust validation (if available)
             if (function_exists('imagecreatefromstring')) {
                 // validate image data
                 $imgResource = @imagecreatefromstring($data);
                 if ($imgResource !== false) {
                     // output image and clean-up
                     imagepng($imgResource);
                     imagedestroy($imgResource);
                     exit;
                 }
             } else {
                 echo $data;
                 exit;
             }
         }
     }
     Piwik::setHttpStatus('400 Bad Request');
     exit;
 }
예제 #2
0
파일: IP.php 프로젝트: neolf/PIWIK4MOBILE
 /**
  * Convert IP address (in network address format) to presentation format.
  * This is a backward compatibility function for code that only expects
  * IPv4 addresses (i.e., doesn't support IPv6).
  *
  * This function does not support the long (or its string representation)
  * returned by the built-in ip2long() function, from Piwik 1.3 and earlier.
  *
  * @param string $ip IPv4 address in network address format
  * @return string IP address in presentation format
  */
 public static function long2ip($ip)
 {
     // IPv4
     if (Piwik_Common::strlen($ip) == 4) {
         return self::N2P($ip);
     }
     // IPv6 - transitional address?
     if (Piwik_Common::strlen($ip) == 16) {
         if (substr_compare($ip, "ÿÿ", 0, 12) === 0 || substr_compare($ip, "", 0, 12) === 0) {
             // remap 128-bit IPv4-mapped and IPv4-compat addresses
             return self::N2P(Piwik_Common::substr($ip, 12));
         }
     }
     return '0.0.0.0';
 }
예제 #3
0
파일: Visit.php 프로젝트: nnnnathann/piwik
 /**
  * Returns a 64-bit hash of all the configuration settings
  * @param $os
  * @param $browserName
  * @param $browserVersion
  * @param $resolution
  * @param $plugin_Flash
  * @param $plugin_Java
  * @param $plugin_Director
  * @param $plugin_Quicktime
  * @param $plugin_RealPlayer
  * @param $plugin_PDF
  * @param $plugin_WindowsMedia
  * @param $plugin_Gears
  * @param $plugin_Silverlight
  * @param $plugin_Cookie
  * @param $ip
  * @param $browserLang
  * @return string
  */
 protected function getConfigHash($os, $browserName, $browserVersion, $resolution, $plugin_Flash, $plugin_Java, $plugin_Director, $plugin_Quicktime, $plugin_RealPlayer, $plugin_PDF, $plugin_WindowsMedia, $plugin_Gears, $plugin_Silverlight, $plugin_Cookie, $ip, $browserLang)
 {
     $hash = md5($os . $browserName . $browserVersion . $plugin_Flash . $plugin_Java . $plugin_Director . $plugin_Quicktime . $plugin_RealPlayer . $plugin_PDF . $plugin_WindowsMedia . $plugin_Gears . $plugin_Silverlight . $plugin_Cookie . $ip . $browserLang, $raw_output = true);
     return Piwik_Common::substr($hash, 0, Piwik_Tracker::LENGTH_BINARY_ID);
 }