| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- include("db.php");
- $db->select_db("mailing");
- $postdata = file_get_contents("php://input");
- $r = json_decode($postdata);
- if (isset($r->request)) { #Genero un codigo para que actualicen y se lo mando por mail.
- #El mail existe en la base?
- $stmt=$db->prepare("SELECT 1 FROM mails_datos where mail = ?");
- $stmt->bind_param("s",$r->mail);
- $stmt->execute();
- $stmt->store_result(); #para que el count funcione
- if ($stmt->num_rows ==0) {
- http_response_code(400);
- die("Mail inexistente");
- }
- $codigo=sha1($r->mail.rand(300,50000));
- $codigo=substr($codigo, rand(0,10), 10);
- #Actualizo en la base el codigo y le pongo vencimiento de 24h
- $stmt=$db->prepare("UPDATE mails_datos set codigo = ?, fecha=NOW() where mail = ?");
- $stmt->bind_param("ss",$codigo,$r->mail);
- $stmt->execute();
- http_response_code(200);
- die("Codigo enviado por mail");
- } else { #Valido el codigo
- if(!isset($r->codigo) || !isset($r->mail)) {
- http_response_code(400);
- die("Mail o codigo invalido.");
- }
- $stmt=$db->prepare("SELECT mail,nombre,apellido,zona,provincia,pais,telefono,baja,TIMESTAMPDIFF(HOUR,fecha,NOW()) > 24 FROM mails_datos where codigo=? and mail=?");
- $stmt->bind_param("ss",$r->codigo,$r->mail);
- $stmt->execute();
- $stmt->bind_result($mail,$nombre,$apellido,$zona,$provincia,$pais,$telefono,$baja,$vencido);
- $stmt->store_result(); #para que el count funcione
- if ($stmt->num_rows ==0) {
- http_response_code(400);
- die("Mail o codigo invalido");
- }
- while ($stmt->fetch()) {
- if($vencido) {
- http_response_code(400);
- die("Codigo vencido. Pida otro");
- }
- $persona= new stdClass();
- $persona->mail=$mail;
- $persona->nombre=$nombre;
- $persona->apellido=$apellido;
- $persona->zona=$zona;
- $persona->provincia=$provincia;
- $persona->pais=$pais;
- $persona->baja=$baja;
- $persona->telefono=$telefono;
- echo json_encode($persona);
- }
- }
- ?>
|