PHP - Como recibir datos POST y tratarlos desde servidor externo

 
Vista:

Como recibir datos POST y tratarlos desde servidor externo

Publicado por Andrea (4 intervenciones) el 21/04/2021 19:53:46
Hola a todos,

Estoy buscando como poder montar un sistema para que una web de un amigo me pueda mandar datos POST desde su web (servidor suyo) a un archivo de mi página web (hasta mi servidor).
Ambos usamos PHP. Imagino que el sistema POST es seguro...

El debería enviarme Nombre, Apellido y Mensaje y yo debería poder recibirlo en un archivo de mi servidor para poderlo guardar en mi base de datos.

Me gustaría saber como resolver tanto a nivel de su archivo que ENVIA, tanto mi archivo que RECIBE.
La verdad voy un poco perdido con el tema porque no sabría por donde empezar para documentarme.

Gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 387
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como recibir datos POST y tratarlos desde servidor externo

Publicado por Jefferson (88 intervenciones) el 21/04/2021 21:10:25
Hola amigo exactamente usando POST

El crea una API apuntando a tu servidor (preferiblemente crean un clave que ambos reconozcan)

Por Post el te envia un Json

y cuando tu recibas (mejor dicho tu servidor) creas unas condicionales, recorres el Json y guardas en tu DataBase

Usando Fetch de JS pueden crear el codigo para el envio y tu en php recibes y haces lo que te comente.

Si no entendiste dejalo saber y veremos que podemos ayudar con codigo o un ejemplo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como recibir datos POST y tratarlos desde servidor externo

Publicado por Andrea (4 intervenciones) el 22/04/2021 13:46:45
Hola Jefferson,

Ok, tiendo el concepto, se me hace más claro!
Si, efectivamente debería yo ayudar a montar también el lado envío y pues hacer toda la parte de recepción... pero estoy animado con ello porqué siempre es bueno aprender cosas nuevas :)

Claro, te agradecería mucho un ejemplo de envío y ejemplo de recepción, así me lo estudio y podré ampliarlo para adaptarlo a mi código.
Realmente he buscado pero no he encontrado mucha info clara acerca de ello, y es un tema bastante interesante.

Muchas gracias de nuevo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.725
Plata
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como recibir datos POST y tratarlos desde servidor externo

Publicado por Mauro (870 intervenciones) el 22/04/2021 14:25:29
Hola Andrea:

Sumando a lo que comenta Jefferson, yo te recomendaría crear un webservice tipo REST para que tu amigo lo consuma.

Aquí te dejo un artículo donde puedes ver ejemplos de crear un servicio y otro de cómo consumirlo para que se lo pases a tu amigo :)

Consúltame si te quedan dudas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 387
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como recibir datos POST y tratarlos desde servidor externo

Publicado por Jefferson (88 intervenciones) el 22/04/2021 17:30:22
Hola amigo es muy facil hacer eso.

Para que veas como se logra hacerlo en tiempo real, use una pagina web que tengo instalada para monitorear unos vendedores de mi empresa. "SOLO LA DEJARE ACTIVA POR POCO TIEMPO"

Copia y pega este código, luego ejecútalo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<!DOCTYPE html>
<html lang="en">
 
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <link href="https://cdn.jsdelivr.net/npm/[email protected].0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet">
   <title>Enviar Datos Post</title>
</head>
 
<body>
   <section class="container mt-3">
   <h1>Enviar datos POST y tratarlos desde servidor externo</h1>
      <form id="frm">
         <div class="row">
            <div class="col-sm-6">
               <div class="form-floating mb-2">
                  <input class="form-control" name="nombre" placeholder="nombre">
                  <label for="nombre">Nombre</label>
               </div>
            </div>
            <div class="col-sm-6">
               <div class="form-floating mb-2">
                  <input class="form-control" name="apellido" placeholder="apellido">
                  <label for="apellido">Apellido</label>
               </div>
            </div>
            <div class="col-sm-12">
               <div class="form-floating mb-2">
                  <textarea class="form-control text-rows" name="mensaje" placeholder="mensaje" style="height:90px"></textarea>
                  <label for="mensaje">Mensaje</label>
               </div>
            </div>
            <div class="col-sm-12 my-4 d-flex justify-content-center">
              <button class="btn btn-primary" id="enviar">Enviar</button>
            </div>
         </div>
      </form>
      <div class="p-5" id="nota">
      </div>
   </section>
</body>
<script>
enviar.addEventListener('click', (e) => {
   e.preventDefault();
   enviar.innerHTML='<span class="spinner-border" style="font-size:0.5em" role="status"></span>';
   FrmFetch('https://grupozucol.com/fact_pdf/recibo_post.php',frm).then((retorna) => {
      enviar.innerHTML='Enviar';
      let coment='Como estamos atacando un pagina externa y a el archivo al cual le estamos enviando no devuelve un json<br>';
          coment+='fetch no retorna la promesa, mas sin embargo si envia la informacion a la pagina destino<br><br>';
          coment+='Ejecuta el envio con la consola abierta y veras que sale este link <b>https://grupozucol.com/fact_pdf/recibo_post.php</b><br>';
          coment+='Darle click a esa direccion y verificar que los datos se recibieron correctamente<br>';
          nota.innerHTML=coment;
   })
});
// funcion para enviar el post
// Debido a que estamos enviando informacion y no recuperamos un json
// Javascript bloquea el acceso https://developer.mozilla.org/es/docs/Web/HTTP/CORS
// para ello debemos indicarle en el encabezado que obvie las politicas NO-CORS
// pero no retorna la promesa.
async function FrmFetch(pag, frm) {
  const opciones = {
    method: 'POST',
    body: new FormData(frm),
    mode: "no-cors",
    cache: "default"
  };
  try {
    const fetchResp = await fetch(pag, opciones);
    const retorna = await fetchResp.text();
    return retorna;
  } catch (e) {
    return e;
  }
}
</script>
</html>

El archivo php que recibe solo tiene esto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
$mensaje=$_POST['mensaje'];
 
$insert = "INSERT INTO
  tabla
  (nombre,apellido,mensaje)
  VALUES(
  '" . $nombre . "',
  '" . $apellido . "',
  '" . $mensaje . "')";
 
  echo $insert;

Saludos espero haberte orientado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como recibir datos POST y tratarlos desde servidor externo

Publicado por Andrea (4 intervenciones) el 22/04/2021 20:13:05
Que bien, genial!!! Entiendo, lo voy a estudiar y adaptar para sacarle provecho!
Muchas gracias por vuestros consejos y ejemplo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como recibir datos POST y tratarlos desde servidor externo

Publicado por Andrea (4 intervenciones) el 22/04/2021 20:10:08
Gracias por la info Mauro! Voy a estudiar también una solución REST.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.725
Plata
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como recibir datos POST y tratarlos desde servidor externo

Publicado por Mauro (870 intervenciones) el 22/04/2021 21:57:15
No hay problema!

Espero te sea de ayuda :)

Exitos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar