Advertisement
Guest User

Untitled

a guest
Nov 18th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.02 KB | None | 0 0
  1. <?php
  2. date_default_timezone_set('Europe/London');
  3.  
  4. // lostmyname Database Connection Setup
  5. // -------------------------------------------------------
  6. $dbhost = 'xxx';
  7. $dbname = 'xxx';
  8. $dbuser = 'dbuser';
  9. $dbpass = 'dbpass';
  10. // -------------------------------------------------------
  11.  
  12. // Set the authorisation token
  13. $token = 'xxx';
  14.  
  15.  
  16. $db_local = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
  17.  
  18. $start_time = microtime(true);
  19. echo "<hr><b>STARTED</b><hr>";
  20.  
  21.  
  22. $sql = "SELECT *
  23.        FROM cron
  24.        WHERE cron_title = 'tracked'";
  25. $result = mysqli_query($db_local, $sql);
  26. $row = mysqli_fetch_object($result);
  27.  
  28. if ($row->cron_running == 1 || $row->cron_active == 0)
  29. {
  30.     echo "Stopped";
  31.     exit();
  32. }
  33. else
  34. {
  35.     $sql = "UPDATE cron
  36.            SET cron_running = 1, cron_started = now()
  37.            WHERE cron_title = 'tracked'";
  38.     $result = mysqli_query($db_local, $sql);
  39. }
  40.  
  41.  
  42.  
  43.  
  44. $EmailMessage = '';
  45.  
  46. // Get the list of jobs where the tracking details have just been added
  47. $sql = "SELECT DISTINCT ShipmentID, TrackingDetails,AlternateTrackingDetails FROM books WHERE Tracked = 0 AND TrackingDetails <> '' AND ShipVia <> 'spring_global_packet' AND Cancel = 'no' AND Shipped > 0";
  48. $result = mysqli_query($db_local, $sql);
  49.  
  50. // Feedback Tracking Details to Lostmyname
  51. while ($row = mysqli_fetch_object($result))
  52. {
  53.     $ShipmentID = $row->ShipmentID;
  54.     $tracking_code = preg_replace('/\s+/', '', $row->TrackingDetails);
  55.     $AlternateTrackingDetails = $row->AlternateTrackingDetails;
  56.    
  57.     if($AlternateTrackingDetails <> '')
  58.     {
  59.         $tracking_code = $AlternateTrackingDetails;
  60.     }
  61.    
  62.     // Get cURL resource
  63.     $curl = curl_init();
  64.    
  65.     $CurlURL = 'https://xxx.xxx.xxx/shipments/' . $ShipmentID . '/track?token='.$token.'&tracking_code='.$tracking_code;
  66.  
  67.     // Set some options - we are passing in a useragent too here
  68.     curl_setopt_array($curl, array(
  69.         CURLOPT_PUT => true,
  70.         CURLOPT_POST => true,
  71.         CURLOPT_SSL_VERIFYPEER => false,
  72.         CURLOPT_CONNECTTIMEOUT  => 30,
  73.         CURLOPT_TIMEOUT  => 30,
  74.         CURLOPT_SSL_VERIFYHOST => false,
  75.         CURLOPT_RETURNTRANSFER => true,
  76.         CURLOPT_URL => $CurlURL,
  77.         CURLOPT_USERAGENT => 'CPrintPlus'
  78.     ));
  79.  
  80.  
  81.     if (curl_exec($curl))
  82.     {      
  83.  
  84.         $curl_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
  85.         $http_status = "<br><b>HTTP Status: $curl_code</b>";
  86.         if (curl_error($curl) || ($curl_code != 200 && $curl_code != 503 ))
  87.         {
  88.             $ErrorNo = curl_errno($curl);
  89.             echo "<b>$ShipmentID Tracking Details NOT updated(1): Curl error:</b> $ErrorNo";
  90.             echo $http_status;
  91.             echo "<hr>";
  92.         }
  93.         else
  94.         {          
  95.             $sql2 = "UPDATE books SET Tracked = now() WHERE ShipmentID = '$ShipmentID'";
  96.             $result2 = mysqli_query($db_local, $sql2);
  97.             echo "$ShipmentID Tracking Details updated<br>Response:$curl";
  98.             echo $http_status;
  99.             echo "<hr>";
  100.         }
  101.     }
  102.     else
  103.     {
  104.         $curl_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
  105.         $http_status = "<br><b>HTTP Status: $curl_code</b>";
  106.         if (curl_errno($curl) != 0)
  107.         {
  108.             $ErrorNo = curl_errno($curl);
  109.             $EmailMessage .= "Shipped CURL Error:\n$ShipmentID NOT updated: Curl error $ErrorNo\n\n";
  110.             echo "<b>$ShipmentID Tracking Details NOT updated(2): Curl error:</b> $ErrorNo";
  111.             echo $http_status;
  112.             echo "<hr>";            
  113.         }
  114.     }
  115.  
  116.      
  117.     flush();
  118.     ob_flush();
  119.     // Close request to clear up some resources
  120.     curl_close($curl);
  121. }
  122. // email the error
  123. if ($EmailMessage <> '')
  124. {
  125.     mail('admin@email.com', 'LMN Curl Error', $EmailMessage);
  126. }
  127.  
  128. $sql = "UPDATE cron
  129.            SET cron_running = 0
  130.            WHERE cron_title = 'tracked'";
  131. $result = mysqli_query($db_local, $sql);
  132.  
  133. $finish_time = microtime(true);
  134.  
  135. $time_spent = $finish_time - $start_time;
  136.  
  137. echo "<hr><b>DONE in $time_spent seconds</b><hr>";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement