Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.94 KB | None | 0 0
  1. error_reporting(E_ALL);
  2.  
  3. ini_set('display_errors', 1);
  4.  
  5. // Usage: emailhandler.php?from=<sender>&body=<body>[&to=<device>]
  6. // CREATE TABLE inbox(sender VARCHAR(255), rcpt VARCHAR(255), body VARCHAR(255));
  7. require_once '../incl/Config.php';
  8. require_once '../incl/DBi.php';
  9. require_once '../incl/User.php';
  10. require_once '../incl/Utils.php';
  11. $db = DB::getInstance();
  12.  
  13. date_default_timezone_set('Europe/Minsk');
  14.  
  15. $dateiname = "log.txt";
  16. $handler = fOpen($dateiname , "w+");
  17. fWrite($handler , json_encode($_REQUEST)." ".date('d.m.y h:i:s'));
  18. fClose($handler);
  19.  
  20. // ?from=79219353989&body=lala
  21.  
  22. if(isSet($_GET['from']) && isSet($_GET['body']) && !empty($_GET['from']) && !empty($_GET['body'])){
  23. $from = $db->real_escape_string($_GET['from']);
  24. $body = trim($db->real_escape_string($_GET['body']));
  25. $body = str_replace(array('%0a','%0d'),'',$body);
  26.  
  27. $sql= "SELECT `email`.id as id, `email`.gateway_id, `email`.user_id as user_id, `email`.ctext as ctext, `email_response`.type as response_type, `email`.order_nr, `email`.employee_nr FROM `email` LEFT JOIN `email_response` ON `email`.id = `email_response`.email_id WHERE `email`.`fon_nr` = '$from' AND `email`.state = 'Отправлено' AND `email`.stype='основное' ORDER BY id desc LIMIT 1";
  28. $email = $db->fetchOne($sql);
  29. if($email) {
  30. if($email['response_type'] == null) {
  31. $result = intVal($body);
  32. if($result > 0 && $result < 6) {
  33. $type = 'Correct answer';
  34. $pEmailCount = 1;
  35. if($email['ctext'] != '') {
  36. $prices = Utils::getPrices();
  37. $pEmailCount = Utils::countEmail($email['ctext']);
  38. $toPay = $pEmailCount * floatVal($prices['email_price']);
  39. if(User::changeBalance(-$toPay,$email['user_id'])) {
  40. $sql = "INSERT INTO `email`
  41. (`gateway_id`, `user_id`,`stype`,`email_amount`,`text`,`fon_nr`,`state`,`source`,`order_nr`,`employee_nr`,`sent`) VALUES
  42. ($email[gateway_id], '$email[user_id]','finished','$pEmailCount','$email[ctext]','$from','process','site','$email[order_nr]','$email[employee_nr]',NOW()+1)";
  43. if(!$db->query($sql)) {
  44. $dateiname = "log2.txt";
  45. $handler = fOpen($dateiname , "w+");
  46. fWrite($handler , $sql);
  47. fClose($handler);
  48. } else {
  49.  
  50. $sql = "UPDATE `email` SET `sent_last` = NOW()+1 WHERE `gateway_id` = '$email[id]'";
  51. $db->query($sql);
  52.  
  53. $db->query("UPDATE `gateways` SET `email_per_day_actual` = `email_per_day_actual`+1 WHERE `gateway_id` = $email[gateway_id]");
  54. }
  55. }
  56. echo 'ok';
  57. }
  58. } else {
  59. $type = 'Incorrect naswer';
  60. $result = 0;
  61. }
  62. $sql = "INSERT INTO `email_response` (`email_id`,`text`,`fon_nr`,`for_user`,`type`,`result`)
  63. VALUES ('$email[id]','$body','$from','$email[user_id]','$type','$result')";
  64. $db->query($sql);
  65. echo 'Saved in email_response: '.$type;
  66.  
  67. } else {
  68. $sql = "INSERT INTO `email_response` (`text`,`fon_nr`,`for_user`,`type`)
  69. VALUES ('$body','$from','$email[user_id]','Duplicate')";
  70. $db->query($sql);
  71. echo 'Duplicate';
  72. }
  73. } else {
  74. $sql = "INSERT INTO `inbox` VALUES('$from', '$from', '$body')";
  75. $db->query($sql);
  76. }
  77. } else {
  78. echo 'parameters missing!';
  79. }
  80. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement