Advertisement
Sirallens

php to app

Jul 5th, 2018
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.94 KB | None | 0 0
  1. <?php
  2. require_once __DIR__ . '/../../required/db_connect.php';
  3. $input = file_get_contents("php://input");
  4. $error=0;
  5. $out_json = array();
  6. $out_json['success'] = 1; //assume success
  7. $SW1_status=0; $LED1_status=0;
  8. if ($input)
  9.  {
  10.      $json = json_decode($input, true); //check if it json input
  11.      if (json_last_error() == JSON_ERROR_NONE) {
  12.          if (isset($json["username"]) && isset($json["password"]) && isset($json["SW1"])
  13.         && isset($json["SW2"])) {
  14.              $in_username = $json["username"];
  15.              $in_password = $json["password"]; //if the expected fields are not null, get them
  16.              $in_SW1 = $json["SW1"];
  17.              $in_SW2 = $json["SW2"];
  18.              $sender = $json["sender"];
  19.              if ($stmt=$mysqli->prepare("SELECT password FROM webuser WHERE pname = ? LIMIT 1")) {
  20.                  $stmt->bind_param('s', $in_username);
  21.                  $stmt->execute(); $stmt->store_result(); //store_result to get num_rows etc.
  22.                  $stmt->bind_result($db_password); //get the hashed password
  23.                  $stmt->fetch();
  24.                 if ($stmt->num_rows == 1)
  25.                 { //if user exists, verify the password
  26.                      if (password_verify($in_password, $db_password)) {
  27.                          $stmt->close();
  28.                          
  29.                          switch ($sender)
  30.                          {
  31.                             case "RPI":
  32.                                
  33.                                 if ($stmt = $mysqli->prepare("UPDATE device set status=? where devname = 'rain'"))
  34.                                  { //update rain
  35.                                     $stmt->bind_param('i', $in_SW1); $stmt->execute();
  36.                                  }
  37.                                  else {$error=1;}
  38.                                     $stmt->close();
  39.  
  40.                                  if ($stmt = $mysqli->prepare("UPDATE device set status=? where devname = 'motion'"))
  41.                                  { //update motion
  42.                                     $stmt->bind_param('i', $in_SW2); $stmt->execute();
  43.                                  }
  44.                                  else {$error=1;}
  45.                                     $stmt->close();
  46.  
  47.                                 break;
  48.  
  49.                             case "ANDROID":
  50.                                 if ($stmt = $mysqli->prepare("UPDATE device set status=? where devname = 'sprinkler'"))
  51.                                  {  //update sprinkle
  52.                                     $stmt->bind_param('i', $in_SW1); $stmt->execute();
  53.                                  }
  54.                                  else {$error=1;}
  55.                                     $stmt->close();
  56.  
  57.                                  if ($stmt = $mysqli->prepare("UPDATE device set status=? where devname = 'photo'"))
  58.                                  { //update photo
  59.                                     $stmt->bind_param('i', $in_SW2); $stmt->execute();
  60.                                  }
  61.                                  else {$error=1;}
  62.                                     $stmt->close();
  63.  
  64.                                 break;
  65.  
  66.                             default:
  67.                                 //Should never enter here
  68.                                 break;
  69.                          }
  70.                          
  71.  
  72.                          if (!$error && ($stmt = $mysqli->prepare("SELECT status FROM device where devname = 'sprinkler'")))
  73.                          { //read SW1
  74.                             $stmt->execute(); $stmt->bind_result($sprinkler_status); $stmt->fetch();
  75.                          }
  76.                          else
  77.                             {$error=2;}
  78.                          $stmt->close();
  79.                          if (!$error && ($stmt = $mysqli->prepare("SELECT status FROM device where devname = 'photo'")))
  80.                          { //read LED1
  81.                             $stmt->execute(); $stmt->bind_result($photo_status); $stmt->fetch();
  82.                         }
  83.                         else
  84.                             {$error=3;}
  85.  
  86.                         if (!$error && ($stmt = $mysqli->prepare("SELECT status FROM device where devname = 'rain'")))
  87.                          { //read SW1
  88.                             $stmt->execute(); $stmt->bind_result($rain_status); $stmt->fetch();
  89.                          }
  90.                          else
  91.                             {$error=2;}
  92.                          $stmt->close();
  93.                          if (!$error && ($stmt = $mysqli->prepare("SELECT status FROM device where devname = 'motion'")))
  94.                          { //read LED1
  95.                             $stmt->execute(); $stmt->bind_result($motion_status); $stmt->fetch();
  96.                         }
  97.                         else
  98.                             {$error=3;}
  99.  
  100.  
  101.  
  102.                     $stmt->close();
  103.                     }
  104.                     else {$error=4;}
  105.                 }
  106.                 else {$error=5;}
  107.             }
  108.             else {$error=6;}
  109.         }
  110.          else {$error=7;}
  111.     }
  112.      else {$error=8;}
  113. }
  114. else {$error=9;}
  115. if ($error)
  116. {
  117.  $out_json['success'] = 0; //flag failure
  118. }
  119. $out_json['sprinkler'] = $sprinkler_status;
  120. $out_json['photo'] = $photo_status;
  121. $out_json['rain'] = $rain_status;
  122. $out_json['motion'] = $motion_status;
  123. $out_json['sender'] = $sender;
  124. $out_json['error'] = $error; //provide error (if any) number for debugging
  125. echo json_encode($out_json); //encode the data in json format
  126. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement