mails_code_validator.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. include("db.php");
  3. $db->select_db("mailing");
  4. $postdata = file_get_contents("php://input");
  5. $r = json_decode($postdata);
  6. if (isset($r->request)) { #Genero un codigo para que actualicen y se lo mando por mail.
  7. #El mail existe en la base?
  8. $stmt=$db->prepare("SELECT 1 FROM mails_datos where mail = ?");
  9. $stmt->bind_param("s",$r->mail);
  10. $stmt->execute();
  11. $stmt->store_result(); #para que el count funcione
  12. if ($stmt->num_rows ==0) {
  13. http_response_code(400);
  14. die("Mail inexistente");
  15. }
  16. $codigo=sha1($r->mail.rand(300,50000));
  17. $codigo=substr($codigo, rand(0,10), 10);
  18. #Actualizo en la base el codigo y le pongo vencimiento de 24h
  19. $stmt=$db->prepare("UPDATE mails_datos set codigo = ?, fecha=NOW() where mail = ?");
  20. $stmt->bind_param("ss",$codigo,$r->mail);
  21. $stmt->execute();
  22. http_response_code(200);
  23. die("Codigo enviado por mail");
  24. } else { #Valido el codigo
  25. if(!isset($r->codigo) || !isset($r->mail)) {
  26. http_response_code(400);
  27. die("Mail o codigo invalido.");
  28. }
  29. $stmt=$db->prepare("SELECT mail,nombre,apellido,zona,provincia,pais,telefono,baja,TIMESTAMPDIFF(HOUR,fecha,NOW()) > 24 FROM mails_datos where codigo=? and mail=?");
  30. $stmt->bind_param("ss",$r->codigo,$r->mail);
  31. $stmt->execute();
  32. $stmt->bind_result($mail,$nombre,$apellido,$zona,$provincia,$pais,$telefono,$baja,$vencido);
  33. $stmt->store_result(); #para que el count funcione
  34. if ($stmt->num_rows ==0) {
  35. http_response_code(400);
  36. die("Mail o codigo invalido");
  37. }
  38. while ($stmt->fetch()) {
  39. if($vencido) {
  40. http_response_code(400);
  41. die("Codigo vencido. Pida otro");
  42. }
  43. $persona= new stdClass();
  44. $persona->mail=$mail;
  45. $persona->nombre=$nombre;
  46. $persona->apellido=$apellido;
  47. $persona->zona=$zona;
  48. $persona->provincia=$provincia;
  49. $persona->pais=$pais;
  50. $persona->baja=$baja;
  51. $persona->telefono=$telefono;
  52. echo json_encode($persona);
  53. }
  54. }
  55. ?>