コード例 #1
0
 /**
  * Returns the javascript tag for the given idSite.
  * This tag must be included on every page to be tracked by Piwik
  *
  * @param int $idSite
  * @param string $customTitle Custom title given to the pageview
  * @return string The Javascript tag ready to be included on the HTML pages
  */
 public function getJavascriptTag($idSite, $piwikUrl = '')
 {
     Piwik::checkUserHasViewAccess($idSite);
     if (empty($piwikUrl)) {
         $piwikUrl = Piwik_Url::getCurrentUrlWithoutFileName();
     }
     $piwikUrl = Piwik_Common::sanitizeInputValues($piwikUrl);
     $htmlEncoded = Piwik::getJavascriptCode($idSite, $piwikUrl);
     $htmlEncoded = str_replace(array('<br>', '<br />', '<br/>'), '', $htmlEncoded);
     return $htmlEncoded;
 }
コード例 #2
0
ファイル: CommonTest.php プロジェクト: nnnnathann/piwik
 /**
  * @dataProvider getInputValues
  * @group Core
  * @group Common
  * @group sanitizeInputValues
  */
 public function testSanitizeInputValues($input, $output)
 {
     if (version_compare(PHP_VERSION, '5.4') < 0) {
         $this->assertTrue(@set_magic_quotes_runtime(1));
         $this->assertEquals(1, @get_magic_quotes_runtime());
         $this->assertEquals($output, Piwik_Common::sanitizeInputValues($input));
         $this->assertTrue(@set_magic_quotes_runtime(0));
         $this->assertEquals(0, @get_magic_quotes_runtime());
         $this->assertEquals($output, Piwik_Common::sanitizeInputValues($input));
     }
 }
コード例 #3
0
ファイル: API.php プロジェクト: BackupTheBerlios/oos-svn
 /**
  * Returns the javascript tag for the given idSite.
  * This tag must be included on every page to be tracked by Piwik
  *
  * @param int $idSite
  * @return string The Javascript tag ready to be included on the HTML pages
  */
 public static function getJavascriptTag($idSite, $piwikUrl = '', $actionName = '')
 {
     Piwik::checkUserHasViewAccess($idSite);
     $actionName = "'" . addslashes(Piwik_Common::sanitizeInputValues($actionName)) . "'";
     if (empty($piwikUrl)) {
         $piwikUrl = Piwik_Url::getCurrentUrlWithoutFileName();
     }
     $piwikUrl = addslashes(Piwik_Common::sanitizeInputValues($piwikUrl));
     $htmlEncoded = Piwik::getJavascriptCode($idSite, $piwikUrl, $actionName);
     $htmlEncoded = str_replace(array('<br>', '<br />', '<br/>'), '', $htmlEncoded);
     return html_entity_decode($htmlEncoded);
 }
コード例 #4
0
ファイル: Cookie.php プロジェクト: BackupTheBerlios/oos-svn
 /**
  * Escape values from the cookie before sending them back to the client 
  * (when using the get() method).
  * 
  * @return mixed The value once cleaned.
  */
 protected static function escapeValue($value)
 {
     return Piwik_Common::sanitizeInputValues($value);
 }
コード例 #5
0
ファイル: Common.test.php プロジェクト: nnnnathann/piwik
 function test_sanitizeInputValues_php()
 {
     $a = true;
     $b = true;
     $this->assertEqual($b, Piwik_Common::sanitizeInputValues($a));
     $a = false;
     $b = false;
     $this->assertEqual($b, Piwik_Common::sanitizeInputValues($a));
     $a = null;
     $b = null;
     $this->assertEqual($b, Piwik_Common::sanitizeInputValues($a));
     $a = "";
     $b = "";
     $this->assertEqual($b, Piwik_Common::sanitizeInputValues($a));
 }
コード例 #6
0
ファイル: Visit.php プロジェクト: BackupTheBerlios/oos-svn
 /**
  * Gets the UserSettings information and returns them in an array of name => value
  * 
  * @return array
  */
 protected function getUserSettingsInformation()
 {
     // we already called this method before, simply returns the result
     if (is_array($this->userSettingsInformation)) {
         return $this->userSettingsInformation;
     }
     require_once PIWIK_INCLUDE_PATH . '/libs/UserAgentParser/UserAgentParser.php';
     $plugin_Flash = Piwik_Common::getRequestVar('fla', 0, 'int', $this->request);
     $plugin_Java = Piwik_Common::getRequestVar('java', 0, 'int', $this->request);
     $plugin_Director = Piwik_Common::getRequestVar('dir', 0, 'int', $this->request);
     $plugin_Quicktime = Piwik_Common::getRequestVar('qt', 0, 'int', $this->request);
     $plugin_RealPlayer = Piwik_Common::getRequestVar('realp', 0, 'int', $this->request);
     $plugin_PDF = Piwik_Common::getRequestVar('pdf', 0, 'int', $this->request);
     $plugin_WindowsMedia = Piwik_Common::getRequestVar('wma', 0, 'int', $this->request);
     $plugin_Gears = Piwik_Common::getRequestVar('gears', 0, 'int', $this->request);
     $plugin_Silverlight = Piwik_Common::getRequestVar('ag', 0, 'int', $this->request);
     $plugin_Cookie = Piwik_Common::getRequestVar('cookie', 0, 'int', $this->request);
     $userAgent = Piwik_Common::sanitizeInputValues(@$_SERVER['HTTP_USER_AGENT']);
     $aBrowserInfo = UserAgentParser::getBrowser($userAgent);
     $browserName = $aBrowserInfo !== false && $aBrowserInfo['id'] !== false ? $aBrowserInfo['id'] : 'UNK';
     $browserVersion = $aBrowserInfo !== false && $aBrowserInfo['version'] !== false ? $aBrowserInfo['version'] : '';
     $os = UserAgentParser::getOperatingSystem($userAgent);
     $os = $os === false ? 'UNK' : $os['id'];
     $resolution = Piwik_Common::getRequestVar('res', 'unknown', 'string', $this->request);
     $ip = Piwik_Common::getIp();
     $browserLang = Piwik_Common::getBrowserLanguage();
     $configurationHash = $this->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);
     $this->userSettingsInformation = array('config_md5config' => $configurationHash, 'config_os' => $os, 'config_browser_name' => $browserName, 'config_browser_version' => $browserVersion, 'config_resolution' => $resolution, 'config_pdf' => $plugin_PDF, 'config_flash' => $plugin_Flash, 'config_java' => $plugin_Java, 'config_director' => $plugin_Director, 'config_quicktime' => $plugin_Quicktime, 'config_realplayer' => $plugin_RealPlayer, 'config_windowsmedia' => $plugin_WindowsMedia, 'config_gears' => $plugin_Gears, 'config_silverlight' => $plugin_Silverlight, 'config_cookie' => $plugin_Cookie, 'location_ip' => $ip, 'location_browser_lang' => $browserLang);
     return $this->userSettingsInformation;
 }
コード例 #7
0
ファイル: Visit.php プロジェクト: klando/pgpiwik
 /**
  * Gets the UserSettings information and returns them in an array of name => value
  * 
  * @return array
  */
 protected function getUserSettingsInformation()
 {
     // we already called this method before, simply returns the result
     if (is_array($this->userSettingsInformation)) {
         return $this->userSettingsInformation;
     }
     require_once "UserAgentParser/UserAgentParser.php";
     $plugin_Flash = Piwik_Common::getRequestVar('fla', 0, 'int', $this->request);
     $plugin_Director = Piwik_Common::getRequestVar('dir', 0, 'int', $this->request);
     $plugin_RealPlayer = Piwik_Common::getRequestVar('realp', 0, 'int', $this->request);
     $plugin_Pdf = Piwik_Common::getRequestVar('pdf', 0, 'int', $this->request);
     $plugin_WindowsMedia = Piwik_Common::getRequestVar('wma', 0, 'int', $this->request);
     $plugin_Cookie = Piwik_Common::getRequestVar('cookie', 0, 'int', $this->request);
     $userAgent = Piwik_Common::sanitizeInputValues(@$_SERVER['HTTP_USER_AGENT']);
     $aBrowserInfo = UserAgentParser::getBrowser($userAgent);
     # the !==false does not match the NULL and we have NOT NULL in the colums, so change to !empty.
     $browserName = !empty($aBrowserInfo) && !empty($aBrowserInfo['id']) ? $aBrowserInfo['id'] : 'UNK';
     $browserVersion = !empty($aBrowserInfo) && !empty($aBrowserInfo['version']) ? $aBrowserInfo['version'] : '';
     $os = UserAgentParser::getOperatingSystem($userAgent);
     $os = $os === false ? 'UNK' : $os['id'];
     $resolution = Piwik_Common::getRequestVar('res', 'unknown', 'string', $this->request);
     $ip = Piwik_Common::getIp();
     $browserLang = Piwik_Common::getBrowserLanguage();
     $configurationHash = $this->getConfigHash($os, $browserName, $browserVersion, $resolution, $plugin_Flash, $plugin_Director, $plugin_RealPlayer, $plugin_Pdf, $plugin_WindowsMedia, $plugin_Cookie, $ip, $browserLang);
     $this->userSettingsInformation = array('config_md5config' => $configurationHash, 'config_os' => $os, 'config_browser_name' => $browserName, 'config_browser_version' => $browserVersion, 'config_resolution' => $resolution, 'config_pdf' => $plugin_Pdf, 'config_flash' => $plugin_Flash, 'config_director' => $plugin_Director, 'config_realplayer' => $plugin_RealPlayer, 'config_windowsmedia' => $plugin_WindowsMedia, 'config_cookie' => $plugin_Cookie, 'location_ip' => $ip, 'location_browser_lang' => $browserLang);
     return $this->userSettingsInformation;
 }
コード例 #8
0
ファイル: Common.php プロジェクト: BackupTheBerlios/oos-svn
 /**
  * Returns the browser language code, eg. "en-gb,en;q=0.5"
  *
  * @return string
  */
 public static function getBrowserLanguage($browserLang = NULL)
 {
     static $replacementPatterns = array('/(\\\\.)/', '/(\\s+)/', '/(\\([^)]*\\))/', '/(;q=[0-9.]+)/');
     if (is_null($browserLang)) {
         $browserLang = Piwik_Common::sanitizeInputValues(@$_SERVER['HTTP_ACCEPT_LANGUAGE']);
     }
     if (is_null($browserLang)) {
         // a fallback might be to infer the language in HTTP_USER_AGENT (i.e., localized build)
         $browserLang = "";
     } else {
         // language tags are case-insensitive per HTTP/1.1 s3.10 but the region may be capitalized per ISO3166-1;
         // underscores are not permitted per RFC 4646 or 4647 (which obsolete RFC 1766 and 3066),
         // but we guard against a bad user agent which naively uses its locale
         $browserLang = strtolower(str_replace('_', '-', $browserLang));
         // filters
         $browserLang = preg_replace($replacementPatterns, '', $browserLang);
         $browserLang = preg_replace('/((^|,)chrome:.*)/', '', $browserLang, 1);
         // Firefox bug
         $browserLang = preg_replace('/(,)(?:en-securid,)|(?:(^|,)en-securid(,|$))/', '$1', $browserLang, 1);
         // unregistered language tag
         $browserLang = str_replace('sr-sp', 'sr-rs', $browserLang);
         // unofficial (proposed) code in the wild
     }
     return $browserLang;
 }
コード例 #9
0
ファイル: Visit.php プロジェクト: Doluci/tomatocart
 /**
  * Gets the UserSettings information and returns them in an array of name => value
  * 
  * @return array
  */
 private function getUserSettingsInformation()
 {
     // we already called this method before, simply returns the result
     if (is_array($this->userSettingsInformation)) {
         return $this->userSettingsInformation;
     }
     $plugin_Flash = Piwik_Common::getRequestVar('fla', 0, 'int');
     $plugin_Director = Piwik_Common::getRequestVar('dir', 0, 'int');
     $plugin_Quicktime = Piwik_Common::getRequestVar('qt', 0, 'int');
     $plugin_RealPlayer = Piwik_Common::getRequestVar('realp', 0, 'int');
     $plugin_Pdf = Piwik_Common::getRequestVar('pdf', 0, 'int');
     $plugin_WindowsMedia = Piwik_Common::getRequestVar('wma', 0, 'int');
     $plugin_Java = Piwik_Common::getRequestVar('java', 0, 'int');
     $plugin_Cookie = Piwik_Common::getRequestVar('cookie', 0, 'int');
     $userAgent = Piwik_Common::sanitizeInputValues(@$_SERVER['HTTP_USER_AGENT']);
     $aBrowserInfo = Piwik_Common::getBrowserInfo($userAgent);
     $browserName = $aBrowserInfo['name'];
     $browserVersion = $aBrowserInfo['version'];
     $os = Piwik_Common::getOs($userAgent);
     $resolution = Piwik_Common::getRequestVar('res', 'unknown', 'string');
     $colorDepth = Piwik_Common::getRequestVar('col', 32, 'numeric');
     $ip = Piwik_Common::getIp();
     $ip = ip2long($ip);
     $browserLang = substr(Piwik_Common::sanitizeInputValues(@$_SERVER['HTTP_ACCEPT_LANGUAGE']), 0, 20);
     if (is_null($browserLang)) {
         $browserLang = '';
     }
     $configurationHash = $this->getConfigHash($os, $browserName, $browserVersion, $resolution, $colorDepth, $plugin_Flash, $plugin_Director, $plugin_RealPlayer, $plugin_Pdf, $plugin_WindowsMedia, $plugin_Java, $plugin_Cookie, $ip, $browserLang);
     $this->userSettingsInformation = array('config_md5config' => $configurationHash, 'config_os' => $os, 'config_browser_name' => $browserName, 'config_browser_version' => $browserVersion, 'config_resolution' => $resolution, 'config_color_depth' => $colorDepth, 'config_pdf' => $plugin_Pdf, 'config_flash' => $plugin_Flash, 'config_java' => $plugin_Java, 'config_director' => $plugin_Director, 'config_quicktime' => $plugin_Quicktime, 'config_realplayer' => $plugin_RealPlayer, 'config_windowsmedia' => $plugin_WindowsMedia, 'config_cookie' => $plugin_RealPlayer, 'location_ip' => $ip, 'location_browser_lang' => $browserLang);
     return $this->userSettingsInformation;
 }
コード例 #10
0
ファイル: Common.php プロジェクト: Doluci/tomatocart
 /**
  * Returns the first element of a comma separated list of IPs
  *
  * @param string $ip
  *
  * @return string first element before ','
  */
 private static function getFirstIpFromList($ip)
 {
     $p = strpos($ip, ',');
     if ($p !== false) {
         return trim(Piwik_Common::sanitizeInputValues(substr($ip, 0, $p)));
     }
     return trim(Piwik_Common::sanitizeInputValues($ip));
 }