Advertisement
Guest User

Untitled

a guest
Sep 9th, 2016
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 10.67 KB | None | 0 0
  1. <?php
  2. // tukaj sedaj dobimo podatke iz sms-a
  3. //if $_GET['id'] is set, we know it is a delivery report, otherwise reply text
  4. if(isset($_GET['id'])) {
  5.     $id = (int)$_GET['id'];  //id-s are allways int
  6.     $status = strip_tags($_GET['status']);
  7.  
  8.     //do whatever you want here. Maybe store it to database
  9.     //we will just echo sms ID and status.
  10.     echo 'SMS ID: ' . $id . ' STATUS: ' . $status;
  11.     }
  12.     else {
  13.     $id = (int)$_POST['smsId'];
  14.     $msg = strip_tags($_POST['m']);
  15.     $fromNumber = $_POST['from']; //replier
  16.     $toNumber = $_POST['to']; //number to which user replied to (can be shared from SMSAPI or own)
  17.     $date = date('Y-m-d', (int)$_POST['time']);
  18.  
  19.     echo 'SMS ID: ' . $id . ' MSG: ' . $msg . ' FROM: ' . $fromNumber . ' TIME: ' . $date;
  20.       // zapišemo v datoteko
  21.       $file = 'sms.txt';
  22.     $current = file_get_contents($file);
  23.     $current .= 'SMS ID: ' . $id . ' MSG: ' . $msg . ' FROM: ' . $fromNumber . ' TIME: ' . $date . "\n";
  24.     file_put_contents($file, $current);
  25.      // določimo spremenljivke
  26.     $id .= ' . $id . ';
  27.     $msg .= ' . $msg . ';
  28.     $fromNumber .= ' . $fromNumber . ';
  29.     $time .= ' . $date . ';
  30.  
  31.     // establish SQL connection - zapišemo v bazo
  32.  
  33.     $con = mysqli_connect("localhost","maleni_majstor","enciklopedija123.","maleni_odvoz");
  34.  
  35.     // Check connection
  36.     if (mysqli_connect_errno()) {
  37.       echo "Failed to connect to MySQL: " . mysqli_connect_error();
  38.       // abort?
  39.       exit;
  40.     }
  41.  
  42.     // escape variables for security
  43.     // to prevent SQL injections.
  44.     $id_sms = mysqli_real_escape_string($con, $id);
  45.     $msg = mysqli_real_escape_string($con, $msg);
  46.     $fromNumber = mysqli_real_escape_string($con, $fromNumber);
  47.     $time = mysqli_real_escape_string($con, $date);
  48.  
  49.  
  50.     // Podatke iz odgovora (SMS-a) vstavimo v bazo za kasnejšo manipulacijo.
  51.     $sql = "INSERT INTO odgovori (id_sms, msg, fromNumber, time) VALUES ('$id_sms', '$msg', '$fromNumber', '$time')";
  52.  
  53.     // Run the query. If query fails, bail.
  54.     if (!mysqli_query($con, $sql)) {
  55.       echo "Falied to execute SQL query with statement: " . $sql;
  56.       exit;
  57.     }
  58. }
  59. // nastavimo si možne odgovore
  60. $ne = 'NE';
  61. $da = 'DA';
  62. $ne_m = strtolower($ne);
  63. $da_m = strtolower($da);
  64. // vzpostavljanje povezave z bazo
  65. $servername = "localhost";
  66. $username = "maleni_majstor";
  67. $password = "enciklopedija123.";
  68. $dbname = "maleni_odvoz";
  69.  
  70. // Create connection
  71. $conn = new mysqli($servername, $username, $password, $dbname);
  72. // Check connection
  73. if ($conn->connect_error) {
  74.   die("Connection failed: " . $conn->connect_error);
  75. }
  76. // pridobimo podatek o zadnjem vnosu v bazo - gre za odgovor partnerja (DA/NE) in unikatno kodo.
  77. $sql = "SELECT * FROM odgovori ORDER by id desc limit 1";
  78. $result = $conn->query($sql);
  79.  
  80.  
  81.   // output data of each row
  82.   while($row = $result->fetch_assoc()) {
  83.       $id_odg = $row["id"];
  84.       $id_sms = $row["id_sms"];
  85.       $msg = $row["msg"];
  86.       $fromNumber = $row["fromNumber"];
  87.       $time = $row["time"];
  88.  
  89.  
  90.       // "razbiti" moramo $msg, da prvič; preverimo DA/NE, drugič pa, da dobimo unikatno kodo
  91.       $str = $msg;
  92.       $parts = explode(" ", $str);
  93.       $da_ne = $parts[0]; // DA/NE odgovor iz SMS-a
  94.       $uid = $parts[1]; // unikatna številka
  95.       $da_ne = strtolower($da_ne);
  96.       if ($da_ne == $ne_m) { // TUKAJ SMO DOBILI ODGOVOR NE!!! TuKaj Bi MoRal Še GleDaT Če Je TeLeFoNskA IsTa
  97.         // Create connection
  98.         $conn = new mysqli($servername, $username, $password, $dbname);
  99.         // Check connection
  100.         if ($conn->connect_error) {
  101.           die("Connection failed: " . $conn->connect_error);
  102.         }
  103.         // pridobimo podatek o zadnjem vnosu v bazo - gre za odgovor partnerja (DA/NE) in unikatno kodo.
  104.         $sql = "SELECT * FROM stranka ORDER by id desc limit 1";
  105.         $result = $conn->query($sql);
  106.  
  107.  
  108.           // output data of each row
  109.           while($row = $result->fetch_assoc()) {
  110.               $id_odgovora = $row["id"];
  111.             }
  112.  
  113.         $sql = "UPDATE stranka SET status1 ='ne' WHERE id ='$id'";
  114.         $sql = "UPDATE stranka SET zakljuceno1 ='da' WHERE id ='$id'";
  115.  
  116.       if ($con->query($sql) === TRUE) {
  117.         echo "Record updated successfully";
  118.       } else {
  119.         echo "Error updating record: " . $con->error;
  120.       } // dodali smo status odvoza. Ta podatek kasneje potrebujemo pri odločanju, komu poslati.
  121.       $servername = "localhost";
  122. $username = "maleni_majstor";
  123. $password = "enciklopedija123.";
  124. $dbname = "maleni_odvoz";
  125.  
  126. // Create connection
  127. $conn = new mysqli($servername, $username, $password, $dbname);
  128. // Check connection
  129. if ($conn->connect_error) {
  130.   die("Connection faileEd: " . $conn->connect_error);
  131. }
  132. // KONEKTAMO SE NA TABELO STRANKA in pogledamo, če je partner 1 v pravem času oddal naročilo!
  133. $sql = "SELECT * FROM partner WHERE id='$id_odgovora'";
  134. $result = $conn->query($sql);
  135.  
  136.   // output data of each row
  137.   while($row = $result->fetch_assoc()) {
  138.     $id_partner = $row["id"];
  139.     $telefonska_partner = $row["telefonska"];
  140.     $naziv_partner = $row["naziv"];
  141.    
  142.  
  143.     }
  144.         $url = "http://www.smsapi.si/poslji-sms";            //url we are posting to (defined in sms api documentation)
  145.         $data = array("un" => urlencode("matej _sakelsek"),     //api username
  146.                  "ps" => urlencode("269672a9d8c580ec3a5e25d48450d2b85ec0028621"),     //api pass
  147.                  "from" => urlencode("031480333"),      //don"t send as int
  148.                  "to" => urlencode("$telefonska_partner"),          //don"t send as int
  149.                  "m" => urlencode("Zahvaljujemo se vam, $naziv za vaš odgovor. Vozilo bomo posredovali drugemu najbližjemu partnerju."),  //msg
  150.                  "cc" => urlencode("386")     //don"t send as int
  151.                  );
  152.    //send SMS via HTTP GET
  153.    $url = $url . "?" . http_build_query($data);
  154.    $response = file_get_contents($url);
  155.    echo $response;
  156.       }
  157.       elseif ($da_ne == $da_m){ // Pošljemo drugemu partnerju po bližini
  158.         // vzpostavljanje povezave z bazo
  159.  
  160.         $servername = "localhost";
  161.         $username = "maleni_majstor";
  162.         $password = "enciklopedija123.";
  163.         $dbname = "maleni_odvoz";
  164.  
  165.         // Create connection
  166.         $conn = new mysqli($servername, $username, $password, $dbname);
  167.         // Check connection
  168.         if ($conn->connect_error) {
  169.           die("Connection failed: " . $conn->connect_error);
  170.         }
  171.         // KONEKTAMO SE NA TABELO STRANKA in pridobimo podatke o zadnji stranki, ki je naročila prevoz. V naslednjem koraku partnerju pošljemo te podatke.
  172.         $sql = "SELECT * FROM stranka ORDER by id desc limit 1";
  173.         $result = $conn->query($sql);
  174.  
  175.           // output data of each row
  176.           while($row = $result->fetch_assoc()) {
  177.               $id = $row["id"];
  178.               $telefonska_str = $row["telefonska_str"];
  179.               $znamka = $row["znamka"];
  180.               $model = $row["model"];
  181.               $lat = $row["lat"];
  182.               $lng = $row["lon"];
  183.               $ime = $row["ime"];
  184.               $podrobno = $row["podrobno"];
  185.               $created_on = $row["created_on"];
  186.               $koncni_datum =  date('d.m.Y, H:i', strtotime($created_on. ' + 7 days'));
  187.               }
  188.  
  189.               $sql = "UPDATE stranka SET status1 ='da' WHERE id ='$id'";      // dodamo status DA, ker bo prevzel vozilo!
  190.               $sql = "UPDATE stranka SET zakljuceno1 ='da' WHERE id ='$id'"; // dodamo status DA, ker bo prevzel vozilo!
  191.  
  192.             if ($conn->query($sql) === TRUE) {
  193.               echo "Record updated successfully";
  194.             } else {
  195.               echo "Error updating record: " . $conn->error;
  196.             }
  197.  
  198.  
  199.           $url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=".$lat.",".$lng."&sensor=true";
  200.           $data = @file_get_contents($url);
  201.           $jsondata = json_decode($data,true);
  202.  
  203.           if(is_array($jsondata) && $jsondata['status'] == "OK")
  204.           {
  205.                 $city = $jsondata['results']['0']['address_components']['2']['long_name'];
  206.                 $country = $jsondata['results']['0']['address_components']['5']['long_name'];
  207.                 $street = $jsondata['results']['0']['address_components'] ['1']['long_name'];
  208.                 $formatted_address = $jsondata['results']['0']['formatted_address'] ;
  209.           }
  210.         $url = "http://www.smsapi.si/poslji-sms";            //url we are posting to (defined in sms api documentation)
  211.         $data = array("un" => urlencode("matej _sakelsek"),     //api username
  212.                  "ps" => urlencode("269672a9d8c580ec3a5e25d48450d2b85ec0028621"),     //api pass
  213.                  "from" => urlencode("031480333"),      //don"t send as int
  214.                  "to" => urlencode("030342403"),          //don"t send as int
  215.                  "m" => urlencode("Podatki stranke: Ime in priimek: $ime. Naslov: $formatted_address. Telefonska: $telefonska_str. Vozilo: $znamka $model. "),  //pošljemo partnerju naslov in kontaktne podatke stranke, ki naročuje odvoz.
  216.                  "cc" => urlencode("386")     //don"t send as int
  217.                  );
  218.    //send SMS via HTTP GET
  219.    $url = $url . "?" . http_build_query($data);
  220.    $response = file_get_contents($url);
  221.    echo $response;
  222. }
  223.         else {
  224.           $url = "http://www.smsapi.si/poslji-sms";            //url we are posting to (defined in sms api documentation)
  225.           $data = array("un" => urlencode("matej _sakelsek"),     //api username
  226.                    "ps" => urlencode("269672a9d8c580ec3a5e25d48450d2b85ec0028621"),     //api pass
  227.                    "from" => urlencode("031480333"),      //don"t send as int
  228.                    "to" => urlencode("030342403"),          //don"t send as int
  229.                    "m" => urlencode("Prosimo, preverite vpisan odgovor."),  //Stranka ni pravilno odgovorila, pošljemo ji sms, naj preveri vpisane znake!
  230.                    "cc" => urlencode("386")     //don"t send as int
  231.                    );
  232.      //send SMS via HTTP GET
  233.      $url = $url . "?" . http_build_query($data);
  234.      $response = file_get_contents($url);
  235.      echo $response;
  236.         }
  237. }
  238.  
  239. // vzamemo vse podatke in nastavimo logiko pošiljanja:
  240. // Partner 1 (najbližji) ima za odgovor (da/ne) na voljo en teden. Naslednji partner po bližini
  241. // ima na voljo za odgovor štiri dni.
  242. // Tretji - in zadnji partner ima na voljo tudi tri dni. Če kateri od teh odgovori na sporočilo
  243. // z DA se s tem zaključi to naročilo in določi status OK v tabeli stranka stolpec status.
  244. // Če kateri od partnerjev odgovori z NE, dobi naslednji partner njegov čas in svoj.
  245. // Če partner odgovori po pretečenem času z DA/NE, ga opozorimo, da je njegov čas potekel.
  246. // IMAMO V CONTROLLER.PHP
  247.  
  248. $conn->close();
  249. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement