1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

Código para solucionar error en aplicación externa

Tema en 'Programación y Diseño Web' iniciado por ClusterIP, 23 Sep 2015.

  1. ClusterIP

    ClusterIP Usuario activo

    Hola, tengo un problema con una aplicación externa llamada desde mi web. De vez en cuando el servidor que aloja esta aplicación se cae. Me gustaría implementar un código en el enlace que la llama para que se comportase de manera que si el servidor externo está off line, poder redirigir a otra url de miweb para informar del error.

    Gracias
    Salu2
     
  2.  
  3. egrueda

    egrueda Usuario activo

  4. ClusterIP

    ClusterIP Usuario activo

    Pero en los dos ejemplos lo único que hace CURL es la comprobación de estado del servidor al que se realiza la llamada. Ninguna de las dos redirige hacia otra url en caso de que la comprobación resulte:
    CODE, HTML o PHP Insertado:
    echo "Website is down";
     
  5. egrueda

    egrueda Usuario activo

    Hombre, te he puesto un ejemplo de código para hacer la comprobación, a partir de ahí ya puedes adaptarlo para lo que necesites ;-)
     
  6. justice13

    justice13 Usuario activo

    Si es en php, es usar la sintaxis correspondiente a la redirección a la URL que sea. Si no controlas de programación, te recomiendo contratar a un programador.
     
  7. ClusterIP

    ClusterIP Usuario activo

    Comienza a funcionar:
    CODE, HTML o PHP Insertado:
    <?php
    
    function Visit($url){
       $agent = "ONOFF (Estado del servidor)";
       $ch=curl_init();
       curl_setopt ($ch, CURLOPT_URL,$url );
       curl_setopt($ch, CURLOPT_USERAGENT, $agent);
       curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
       curl_setopt ($ch,CURLOPT_VERBOSE,false);
       curl_setopt($ch, CURLOPT_TIMEOUT, 5);
       curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);
       curl_setopt($ch,CURLOPT_SSLVERSION,3);
       curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
       $page=curl_exec($ch);
       #curl_error($ch);
       #
       #http header response code
       global $httpcode;
       $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
       curl_close($ch);
       if($httpcode>=200 && $httpcode<=308) return true;
       else return false;
    }
    
    $sites = array(
    "Destino" => "http://www.google.com",
    );
    ?>
    Ahora solicito la respuesta por stdout:
    CODE, HTML o PHP Insertado:
    <?php
            foreach ($sites as $key => $value) {
                echo '<tr>';
                if (Visit($value)) {
                    echo "Disponible ($httpcode)";
                } else {
                    echo "No disponible ($httpcode)";
                }
                echo '</tr>';
            }
            ?>
    Esta parte quisiera que se hiciese en segundo plano sin que el visitante la viese por pantalla y si la respuesta es "Disponible" que continúe a http://www.google.com y si la respuesta es "No disponible" redirigirlo a http://www.miweb.com/error.html
     
  8. justice13

    justice13 Usuario activo

    Pues en lugar de usar el comando "echo" de imprimir en pantalla, usa un "header('Location: URL');" que redirija a donde desees, en base a la condición del IF. En tu caso, si "disponible" es a Google, pues donde está el echo, quitas esa línea reemplazando por header('Location: http://www.google.es'); y si es que no, pues header('Location: http://www.miweb.com/error.html');

    Insisto, unas clases de PHP básicas no te vendrían nada mal. Los comandos echo y las redirecciones son de lo más sencillo, por así decirlo. Te hubieses ahorrado tiempo ahora y seguro que de cara al futuro si sigues metido en eso.

    Salu2,
     
    A ClusterIP le gusta esto.
  9. ClusterIP

    ClusterIP Usuario activo

    Gracias por tu aporte justice13. Tienes razón en cuanto a las clases, estoy en ello. [SOLUCIONADO]
     
    A justice13 le gusta esto.


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·