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 :  /var/www/laciasmara.com/public_html/shop/application/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

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

class Subscription extends Public_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->library('GoogleClient');
        $this->load->library('VisitorTracking');
        $this->load->database();
        $this->load->library('form_validation');
        $this->load->helper('security');

        $loginUrl = $this->googleclient->getLoginUrl();

        $this->data_footer['googleUrl'] = $loginUrl;

        if ($this->session->userdata('site_lang') == 'english') {
            $this->lang->load('mainpage', 'english');
        } else {
            $this->lang->load('mainpage', 'indonesian');
        }
    }

    public function subscribe()
    {
        if (!$this->input->is_ajax_request()) {
            log_message('error', 'Non-Ajax request attempted on subscription endpoint');
            show_404();
        }

        $this->output->set_content_type('application/json');

        try {
            $this->form_validation->set_rules(
                'email',
                'Email',
                'trim|required|valid_email|is_unique[subscribers.email]',
                array(
                    'required' => 'Please provide an email address.',
                    'valid_email' => 'Please provide a valid email address.',
                    'is_unique' => 'This email is already subscribed.'
                )
            );

            if ($this->form_validation->run() === FALSE) {
                throw new Exception(strip_tags(form_error('email')));
            }

            $email = $this->security->xss_clean($this->input->post('email'));

            $data = array(
                'email' => $email,
                'subscription_date' => date('Y-m-d H:i:s'),
                'ip_address' => $this->input->ip_address(),
                'user_agent' => $this->input->user_agent(),
                'referer_url' => $this->input->server('HTTP_REFERER'),
                'customer_id' => (int) $this->session->userdata('customer')['customer_id'] ?? NULL,
                'source' => 'website',
                'preferences' => json_encode([
                    'newsletter' => true,
                    'promotions' => true
                ]),
                'is_verified' => true,
                'consent' => true
            );

            // Insert ke database dengan error handling
            $this->db->trans_start();
            $insert = $this->db->insert('subscribers', $data);
            $this->db->trans_complete();

            if ($this->db->trans_status() === FALSE) {
                throw new Exception('Failed to save subscription. Please try again.');
            }

            // Response sukses
            $response = array(
                'success' => true,
                'message' => 'Thank you for subscribing to our newsletter!'
            );
        } catch (Exception $e) {
            $response = array(
                'success' => false,
                'message' => $e->getMessage()
            );
        }
        echo json_encode($response);
    }
}

https://t.me/RX1948 - 2025