sendnotification.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. include("../functions.php");
  3. $con = startdb('rw');
  4. //Get fields
  5. $user = mysqli_real_escape_string($con, $_GET['user']);
  6. $code = mysqli_real_escape_string($con, $_GET['code']);
  7. $title_es = urldecode(mysqli_real_escape_string($con, $_GET['titleEs']));
  8. $title_en = urldecode(mysqli_real_escape_string($con, $_GET['titleEn']));
  9. $title_eu = urldecode(mysqli_real_escape_string($con, $_GET['titleEu']));
  10. $text_es = urldecode(mysqli_real_escape_string($con, $_GET['textEs']));
  11. $text_en = urldecode(mysqli_real_escape_string($con, $_GET['textEn']));
  12. $text_eu = urldecode(mysqli_real_escape_string($con, $_GET['textEu']));
  13. $duration = mysqli_real_escape_string($con, $_GET['duration']);
  14. $action = mysqli_real_escape_string($con, $_GET['action']);
  15. //Validate code
  16. $q = mysqli_query($con, "SELECT id FROM user WHERE id = $user AND md5(concat(password, md5(salt))) = '$code'");
  17. //echo "SELECT id FROM user WHERE id = $user AND md5(concat(password, md5(salt))) = '$code'";
  18. if (mysqli_num_rows($q) == 0){
  19. error_log("Reporting location with wrong credentials (IP $_SERVER[REMOTE_ADDR])");
  20. echo("<status>0</status>\n");
  21. exit(-1);
  22. }
  23. //Validate fields
  24. if (strlen($title_es) == 0 || strlen($text_es) == 0){
  25. error_log("Sending notification: no text (IP $_SERVER[REMOTE_ADDR])");
  26. echo("<status>0</status>\n");
  27. exit(-1);
  28. }
  29. if (is_numeric($duration) == false || $duration < 1 && $duration > 48 * 60){
  30. error_log("Sending notification: invalid duration: $duration (IP $_SERVER[REMOTE_ADDR])");
  31. echo("<status>0</status>\n");
  32. exit(-1);
  33. }
  34. if ($action != 'text' && $action != 'lablanca' && $action != 'gmschedule' && $action != 'cityschedule' && $action != 'location' && $action != 'around' && $action != 'blog' && $action != 'activities' && $action != 'gallery'){
  35. error_log("Sending notification: invalid action: '$action' (IP $_SERVER[REMOTE_ADDR])");
  36. echo("<status>0</status>\n");
  37. exit(-1);
  38. }
  39. //Handle translations
  40. if (strlen($titleEn) == 0){
  41. $titleEn = $titleEs;
  42. }
  43. if (strlen($titleEu) == 0){
  44. $titleEu = $titleEs;
  45. }
  46. if (strlen($textEn) == 0){
  47. $textEn = $textEs;
  48. }
  49. if (strlen($textEu) == 0){
  50. $textEu = $textEs;
  51. }
  52. //Insert
  53. mysqli_query($con, "INSERT INTO notification (user, title_es, title_en, title_eu, text_es, text_en, text_eu, action, duration) VALUES ($user, '$title_es', '$title_en', '$title_eu', '$text_es', '$text_en', '$text_eu', '$action', $duration);");
  54. echo("<status>1</status>\n");
  55. ?>