* @package Administration * @author Thorsten Rinne <*****@*****.**> * @copyright 2003-2010 phpMyFAQ Team * @license http://www.mozilla.org/MPL/MPL-1.1.html Mozilla Public License Version 1.1 * @link http://www.phpmyfaq.de * @since 2003-02-24 */ if (!defined('IS_VALID_PHPMYFAQ')) { header('Location: http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME'])); exit; } if ($permission['viewlog']) { require_once PMF_ROOT_DIR . '/inc/Session.php'; $sid = PMF_Filter::filterInput(INPUT_GET, 'id', FILTER_VALIDATE_INT); printf('<h2>%s "<span style="color: Red;">%d</span>"</h2>', $PMF_LANG['ad_sess_session'], $sid); $session = new PMF_Session(); $time = $session->getTimeFromSessionId($sid); $trackingdata = explode("\n", file_get_contents(PMF_ROOT_DIR . '/data/tracking' . date('dmY', $time))); ?> <table class="list"> <tfoot> <tr> <td colspan="2"><a href="?action=viewsessions"><?php print $PMF_LANG["ad_sess_back"]; ?> </a></td> </tr> </tfoot> <tbody> <?php $num = 0;
/** * Deletes the CurrentUser from the session. The user * will be logged out. Return true on success, otherwise false. * * @param boolean $deleteCookie * * @return boolean */ public function deleteFromSession($deleteCookie = false) { // delete CSRF Token $this->deleteCsrfTokenFromSession(); // delete CurrentUser object from session $_SESSION[PMF_SESSION_CURRENT_USER] = null; unset($_SESSION[PMF_SESSION_CURRENT_USER]); // log CurrentUser out $this->_loggedIn = false; // delete session-ID $update = sprintf("\n UPDATE\n %sfaquser\n SET\n session_id = NULL\n %s\n WHERE\n user_id = %d", PMF_Db::getTablePrefix(), $deleteCookie ? ', remember_me = NULL' : '', $this->getUserId()); $res = $this->config->getDb()->query($update); if (!$res) { $this->errors[] = $this->config->getDb()->error(); return false; } if ($deleteCookie) { PMF_Session::setCookie(PMF_Session::PMF_COOKIE_NAME_REMEMBERME); } session_destroy(); return true; }
// // Use mbstring extension if available and when possible // $valid_mb_strings = array('ja', 'en', 'uni'); $mbLanguage = $PMF_LANG['metaLanguage'] != 'ja' ? 'uni' : $PMF_LANG['metaLanguage']; if (function_exists('mb_language') && in_array($mbLanguage, $valid_mb_strings)) { mb_language($mbLanguage); mb_internal_encoding('utf-8'); } // // Found a session ID in _GET or _COOKIE? // $sid = null; $sid_get = PMF_Filter::filterInput(INPUT_GET, PMF_GET_KEY_NAME_SESSIONID, FILTER_VALIDATE_INT); $sid_cookie = PMF_Filter::filterInput(INPUT_COOKIE, PMF_COOKIE_NAME_SESSIONID, FILTER_VALIDATE_INT); $faqsession = new PMF_Session(); // Note: do not track internal calls $internal = false; if (isset($_SERVER['HTTP_USER_AGENT'])) { $internal = strpos($_SERVER['HTTP_USER_AGENT'], 'phpMyFAQ%2F') === 0; } if (!$internal) { if (is_null($sid_get) && is_null($sid_cookie)) { // Create a per-site unique SID $faqsession->userTracking('new_session', 0); } else { if (!is_null($sid_cookie)) { $faqsession->checkSessionId($sid_cookie, $_SERVER['REMOTE_ADDR']); } else { $faqsession->checkSessionId($sid_get, $_SERVER['REMOTE_ADDR']); }
// // Use mbstring extension if available and when possible // $valid_mb_strings = array('ja', 'en', 'uni'); $mbLanguage = 'utf-8' == strtolower($PMF_LANG['metaCharset']) && $PMF_LANG['metaLanguage'] != 'ja' ? 'uni' : $PMF_LANG['metaLanguage']; if (function_exists('mb_language') && in_array($mbLanguage, $valid_mb_strings)) { mb_language($mbLanguage); mb_internal_encoding($PMF_LANG['metaCharset']); } // // Found a session ID in _GET or _COOKIE? // $sid = null; $sid_get = PMF_Filter::filterInput(INPUT_GET, PMF_GET_KEY_NAME_SESSIONID, FILTER_VALIDATE_INT); $sid_cookie = PMF_Filter::filterInput(INPUT_COOKIE, PMF_COOKIE_NAME_SESSIONID, FILTER_VALIDATE_INT); $faqsession = new PMF_Session(); // Note: do not track internal calls $internal = false; if (isset($_SERVER['HTTP_USER_AGENT'])) { $internal = strpos($_SERVER['HTTP_USER_AGENT'], 'phpMyFAQ%2F') === 0; } if (!$internal) { if (is_null($sid_get) && is_null($sid_cookie)) { // Create a per-site unique SID $faqsession->userTracking('new_session', 0); } else { if (!is_null($sid_cookie)) { $faqsession->checkSessionId($sid_cookie, $_SERVER['REMOTE_ADDR']); } else { $faqsession->checkSessionId($sid_get, $_SERVER['REMOTE_ADDR']); }
* @author Thorsten Rinne <*****@*****.**> * @copyright 2003-2009 phpMyFAQ Team * @license http://www.mozilla.org/MPL/MPL-1.1.html Mozilla Public License Version 1.1 * @link http://www.phpmyfaq.de * @since 2003-02-24 */ if (!defined('IS_VALID_PHPMYFAQ')) { header('Location: http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME'])); exit; } if ($permission['viewlog']) { $perpage = 50; $day = PMF_Filter::filterInput(INPUT_POST, 'day', FILTER_VALIDATE_INT); $firstHour = mktime(0, 0, 0, date('m', $day), date('d', $day), date('Y', $day)); $lastHour = mktime(23, 59, 59, date('m', $day), date('d', $day), date('Y', $day)); $session = new PMF_Session(); $sessiondata = $session->getSessionsbyDate($firstHour, $lastHour); ?> <h2><?php print "Session " . date("Y-m-d", $day); ?> </h2> <table class="list"> <thead> <tr> <th class="list">IP</th> <th class="list"> </th> <th class="list">Session</th> </tr> </thead> <tbody>
} //Load plurals support for selected language $plr = new PMF_Language_Plurals($PMF_LANG); // // Initalizing static string wrapper // PMF_String::init($languageCode); // Check captcha $captcha = new PMF_Captcha($db, $Language); //$captcha->setSessionId($sids); // Send headers $http = PMF_Helper_Http::getInstance(); $http->setContentType('application/json'); $http->addHeader(); // Set session $faqsession = new PMF_Session($db, $Language); $network = new PMF_Network(); if (!$network->checkIp($_SERVER['REMOTE_ADDR'])) { $message = array('error' => $PMF_LANG['err_bannedIP']); } if ('savevoting' !== $action && !$captcha->checkCaptchaCode($code)) { $message = array('error' => $PMF_LANG['msgCaptcha']); } if (isset($message['error'])) { print json_encode($message); exit; } // Save user generated content switch ($action) { // Comments case 'savecomment':
* @category phpMyFAQ * @package Administration * @author Thorsten Rinne <*****@*****.**> * @author Matteo Scaramuccia <*****@*****.**> * @copyright 2003-2011 phpMyFAQ Team * @license http://www.mozilla.org/MPL/MPL-1.1.html Mozilla Public License Version 1.1 * @link http://www.phpmyfaq.de * @since 2003-02-24 */ if (!defined('IS_VALID_PHPMYFAQ')) { header('Location: http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME'])); exit; } printf('<header><h2>%s</h2></header>', $PMF_LANG['ad_stat_sess']); if ($permission['viewlog']) { $session = new PMF_Session($db, $Language); $statdelete = PMF_Filter::filterInput(INPUT_POST, 'statdelete', FILTER_SANITIZE_STRING); $month = PMF_Filter::filterInput(INPUT_POST, 'month', FILTER_SANITIZE_STRING); if (!is_null($statdelete) && !is_null($month)) { // Search for related tracking data files and // delete them including the sid records in the faqsessions table $dir = opendir(PMF_ROOT_DIR . "/data"); $first = 1.0E+25; $last = 0; while ($trackingFile = readdir($dir)) { // The filename format is: trackingDDMMYYYY // e.g.: tracking02042006 if ($trackingFile != '.' && $trackingFile != '..' && 10 == strpos($trackingFile, $month)) { $candidateFirst = PMF_Date::getTrackingFileDate($trackingFile); $candidateLast = PMF_Date::getTrackingFileDate($trackingFile, true); if ($candidateLast > 0 && $candidateLast > $last) {
* @license http://www.mozilla.org/MPL/2.0/ Mozilla Public License Version 2.0 * @link http://www.phpmyfaq.de * @since 2013-02-05 */ if (!defined('IS_VALID_PHPMYFAQ')) { $protocol = 'http'; if (isset($_SERVER['HTTPS']) && strtoupper($_SERVER['HTTPS']) === 'ON') { $protocol = 'https'; } header('Location: ' . $protocol . '://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME'])); exit; } $faqTableInfo = $faqConfig->getDb()->getTableStatus(); $templateVars = array('PMF_LANG' => $PMF_LANG, 'dashboardArticles' => $faqTableInfo[PMF_Db::getTablePrefix() . "faqdata"], 'dashboardComments' => $faqTableInfo[PMF_Db::getTablePrefix() . "faqcomments"], 'dashboardNews' => $faqTableInfo[PMF_Db::getTablePrefix() . "faqnews"], 'dashboardOpenQuestions' => $faqTableInfo[PMF_Db::getTablePrefix() . "faqquestions"], 'dashboardUsers' => $faqTableInfo[PMF_Db::getTablePrefix() . 'faquser'] - 1, 'dashboardVisits' => $faqTableInfo[PMF_Db::getTablePrefix() . 'faqsessions'], 'enableUserTracking' => $faqConfig->get('main.enableUserTracking'), 'inMaintenanceMode' => $faqConfig->get('main.maintenanceMode'), 'onlineVerificationActive' => false, 'onlineVerificationError' => false, 'updateCheckActive' => false); if ($faqConfig->get('main.enableUserTracking')) { $session = new PMF_Session($faqConfig); $visits = $session->getLast30DaysVisits(); $templateVars['visitsData'] = implode(',', $visits); unset($session, $visits); } // Perform update check $version = PMF_Filter::filterInput(INPUT_POST, 'param', FILTER_SANITIZE_STRING); if (!is_null($version) && $version == 'version') { $json = file_get_contents('http://www.phpmyfaq.de/api/version'); $result = json_decode($json); if ($result instanceof stdClass) { $installed = $faqConfig->get('main.currentVersion'); $available = $result->stable; $templateVars['updateCheckActive'] = true; $templateVars['updateAvailable'] = -1 == version_compare($installed, $available); $templateVars['lastestVersion'] = $available;
</section> <?php if ($faqConfig->get('main.enableUserTracking')) { ?> <section class="row-fluid"> <div class="span12"> <header> <h3><?php echo $PMF_LANG["ad_stat_report_visits"]; ?> </h3> </header> <?php $session = new PMF_Session($faqConfig); $visits = $session->getLast30DaysVisits(); ?> <script type="text/javascript" src="../assets/js/plugins/jquery.sparkline.min.js"></script> <script type="text/javascript"> $(function() { var visits = [<?php echo implode(',', $visits); ?> ]; $('.visits').sparkline( visits, { type: 'bar', barColor: '#fbc372', barWidth: window.innerWidth / 42, height: 200,