Esto es con fetch API?

  • Autor Autor xcodex
  • Fecha de inicio Fecha de inicio
Fetch si es javascript. Pero si es desde un archivo php puedes usar file_get_contents o cURL que es mucho mejor.
 
Depende como es que quieres llamarlo, fetch seria para el front-end!
 
Si con cURL bro recuerdas lo de POST y GET aquí lo pones a prueba.

Los sitios clientes webcliente1.com hacen una petición miweb.com/archivo.php por medio de cURL por ejemplo del método POST con el cuerpo key=123456 entonces el archivo miweb.com/archivo.php valida el POST y la key 123456 si es correcta pues entonces se responde con un echo a la llamada y las web cliente usan dichos datos para tu propósito. Lo siguiente no es el mejor ejemplo pero te puedes dar una idea hay clases mejores para cURL como esta https://forobeta.com/temas/clase-para-navegar-webs-con-curl-php.694418/ o en github

archivo.php

PHP:
<?php
if((string)$_SERVER['REQUEST_METHOD'] !== "POST"){
    echo "Lo siento :( solo valido con el metodo POST";exit;
}elseif(!isset($_POST['key']) || empty($_POST['key']) || !is_numeric($_POST['key'])){
    echo "Lo siento :( la key debe ser numerica y no debe estar vacia";exit;
}
$key = 12345;
$nueva_key = (int)$_POST['key'];
if($key === $nueva_key){
   echo "Acceso permitido :) " . $nueva_key;
}else{
    echo "La key es erronea acceso denegado :(";exit;
}
?>

cliente.php
PHP:
<?php
function curl($url, $post_data="", $headers="", $cookie_file=""){
    $curl = curl_init($url);

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);

    if(!empty($headers)){curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);}

    if(!empty($post_data)){
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
    }

    if(!empty($cookie_file)){
        curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
        curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file);
    }

    $response = curl_exec($curl);

    if(curl_error($curl)){
        $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        $error = "Error = " . curl_error($curl) . " - " . 'HTTP code: ' . $httpcode;
        curl_close($curl);
        return array(false, $error);
    }

    curl_close($curl);

    return (empty($response) ? array(false, "No hay nada de respuesta.") : array(true, $response));
}
$response = curl("http://localhost/post_test/archivo.php","key=12345");
if($response[0] === true){
    echo $response[1]; // Aca se podria validar por ejemplo si la respuesta contiene cierta palabra por ejemplo Acceso permitido y así saber que todo es OK
}else{
    echo "Error en la peticion: " . $response[1];
}
?>

Ejecuta en el navegador en localhost cliente.php

Esto es para el backend ya para el front-end usa javascript con fetch o cono lo que comente en la otra publicacion en el cliente pasaria hacer un POST con javascript a archivo.php con su cuerpo key=12345 y la respuesta la coloco con javascript por ejemplo en un <div id="mi_div"> document.getElementById('mi_div').innerHTML= RESPONSEAQUI;
 
Última edición:
Muchas gracias😎
Quedé asombrado con Curl. Sin dudas es lo que utilizaré.🙂🙂
 
Muchas gracias😎
Quedé asombrado con Curl. Sin dudas es lo que utilizaré.🙂🙂
OK y bueno con fetch mas o menos quedaría así:

HTML:
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
</head>
<body>
<div id="response">
</div>
  <script>
function send_fetch(){
    var url = 'http://localhost/post_test/archivo.php';
    fetch(url, {
      method: 'POST',
      body: "key=12345",
      headers: { 'Content-type': 'application/x-www-form-urlencoded' },
    }).then(response => response.text())
    .then((response) => {
        document.getElementById("response").innerHTML = response;
    })
    .catch(err => alert(err))
}
send_fetch();
  </script>
</body>
</html>
 
Atrás
Arriba