prefix . 'eistat_';
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
$eistat_session_hash = isset($_GET['session']) ? sanitize_text_field(wp_unslash($_GET['session'])) : '';
if (!preg_match('/^[a-f0-9]{32}$/', $eistat_session_hash)) {
echo '
' . esc_html__('Invalid session hash.', 'statinform') . '
';
return;
}
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
$eistat_sess = $wpdb->get_row($wpdb->prepare(
"SELECT * FROM {$eistat_p}sessions WHERE session_hash = %s",
$eistat_session_hash
));
if (!$eistat_sess) {
echo '' . esc_html__('Session not found.', 'statinform') . '
';
return;
}
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
$eistat_page_urls = [];
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
$eistat_rows = $wpdb->get_results($wpdb->prepare(
"SELECT page_type, page_id, page_url
FROM {$eistat_p}pageviews WHERE date = %s",
$eistat_sess->date
));
foreach ($eistat_rows as $r) {
$eistat_page_urls[$r->page_type . '|' . $r->page_id] = $r->page_url;
}
$eistat_pages = json_decode($eistat_sess->pages_json ?: '[]', true) ?: [];
$eistat_dur = (int) $eistat_sess->total_time;
$eistat_dur_is_fallback = false;
if ($eistat_dur === 0) {
$eistat_dur = min(600, strtotime($eistat_sess->last_seen) - strtotime($eistat_sess->first_seen));
$eistat_dur_is_fallback = true;
}
?>
←
date));
?>
session_hash, 0, 8)));
?>
source); ?>
referrer_host): ?>
referrer_host); ?>
| # |
|
|
|
|
$pg):
$eistat_pid = $pg[0] ?? 0;
$eistat_time = $pg[1] ?? 0;
$eistat_type = EISTAT_Aggregator::char_to_type($pg[2] ?? 'o');
$eistat_url = $eistat_page_urls[$eistat_type . '|' . $eistat_pid] ?? '';
?>
|
|
|
|