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); } } ?>