ANEXO II: ARCHIVOS CREADOS PARA IMPLEMENTAR LA WEB API EN EL SERVIDOR

Tamaño: px
Comenzar la demostración a partir de la página:

Download "ANEXO II: ARCHIVOS CREADOS PARA IMPLEMENTAR LA WEB API EN EL SERVIDOR"

Transcripción

1 Anexo II En el presente anexo se incluye el código PHP de la web API almacenada en el servidor intermedio. En este caso, el orden de los archivos persigue favorecer la comprensión del código, por lo que no se ha realizado una ordenación alfabética de los mismos. Archivo servidor_intermedio5.php <?php //Incluimos la librería para parsear html include_once('simple_html_dom.php'); function loginintersas ($url, $agente) { foreach($_post as $nombre_campo => $valor){ $asignacion = "$". $nombre_campo. "='". $valor. "';"; eval($asignacion); //$ckfile = tempnam ("/tmp", "CURLCOOKIE"); $curl = curl_init(); //Nueva sesion CURL $campos = "id_us=". $id_us. "&dia=". $dia. "&mes=". $mes. "&anio=". $anio. "&dni=". $dni. "&origen=1"; curl_setopt ($curl, CURLOPT_URL, $url); //Direccion de destino curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1); //Resultado en una cadena de texto curl_setopt ($curl, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl, CURLOPT_USERAGENT, $agente); curl_setopt ($curl, CURLOPT_HEADER, 1); //devuelve encabezado http // Especificamos la versión de SSL para poder conectar con el servidor de InterS@S curl_setopt ($curl, CURLOPT_SSLVERSION, 3); /* Se comprobará que el certificado del servidor es válido verificando que la CA (Autoridad Certificadora) que lo expidió está entre las CA reconocidas.*/ curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, true); /* También se comprobará que el common name (CN) del certificado de servidor se corresponde con el dominio al que nos estamos conectando.*/ curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, 2); /* Con la siguiente opción le indicamos a curl que confíe en los certificados de servidor firmados por una CA cuyo certificado raiz es FNMTClase2CA-FNMT.crt. Este es el certificado raiz de la FNMT que es la autoridad certificadora que expide el certificado de servidor del servidor al que estamos intentando acceder vía https (el servidor de InterS@S). El certificado se ha obtenido exportándolo desde Firefox como certificado X.509 con cadena (PEM). Es fundamental que se exporte en este formato para que sea compatible con Curl. Por otra parte getcwd() es una función de php que devuelve el directorio actual.*/ curl_setopt ($curl, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl, CURLOPT_POST, 1); curl_setopt ($curl, CURLOPT_POSTFIELDS, $campos); $codigofuente = curl_exec ($curl); //Ejecutamos sesion CURL /* Comprobamos que los datos se han introducido correctamente (comprobamos que no hemos obtenido la página advirtiendo de la no coincidencia entre los datos introducidos y los almacenados en la base de datos de InterS@S). */ 136

2 $html->load($codigofuente); $compruebaerrordatos=$html->find('span[class=letra_general]',0)->innertext; if ($compruebaerrordatos=="se ha producido un error al introducir los datos."){ $json2='{"enlace_cancelar":"no hay cita que cancelar","comprueba_acceso":"'.$compruebaerrordatos.'"'; curl_close ($curl); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html para no malgastar memoria print (utf8_encode($json2)); print ('{"segundojson":"relleno"'); /* Queremos obtener la dirección para pedir cita con el médico, la cual es generada dinámicamente. Para ello analizaremos el contenido de $codigofuente, que no es más que una cadena de texto, haciendo uso de algunas funciones de php de manipulación de cadenas: */ $primerpaso=explode('href="/citainternet/inicio_citamedico.jsp?id=',$codigofuen te); $segundopaso=$primerpaso[1]; $tercerpaso=explode('" target="_blank" onclick="completa_url(this.href);',$segundopaso); $idprimero=$tercerpaso[0]; // La url para pedir cita $url2 = " $idprimero; curl_close ($curl); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html para ahorrar recursos del servidor. $curl2 = curl_init(); //Nueva sesion CURL curl_setopt ($curl2, CURLOPT_URL, $url2); //Direccion de destino curl_setopt($curl2, CURLOPT_AUTOREFERER, 1); // Queremos la respuesta en una cadena de texto curl_setopt ($curl2, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl2, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl2, CURLOPT_USERAGENT, $agente); /* Especificamos la versión de ssl para que funcione con el servidor de InterS@S */ curl_setopt ($curl2, CURLOPT_SSLVERSION, 3); /* Igual que antes, se comprobará que el certificado del servidor es válido comprobando que la CA (Autoridad Certificadora) que lo expidió está entre las CA reconocidas. */ curl_setopt ($curl2, CURLOPT_SSL_VERIFYPEER, true); curl_setopt ($curl2, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt ($curl2, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); /* Las siguientes tres líneas para almacenar las cookies de esta petición no funcionan en el hosting a pesar de haber dado permisos de escritura. $ckfile = "/proyecto/tmp".time(); curl_setopt($curl2, CURLOPT_COOKIEFILE, $ckfile); curl_setopt($curl2, CURLOPT_COOKIEJAR, $ckfile); 137

3 Finalmente opto por obtener las cookies parseando la cabecera http de la petición. Para que la cabecera http esté incluida en la respuesta que se obtiene establecemos a uno la opción CURLOPT_HEADER de la sesión curl */ //Se incluye la cabecera http en la respuesta. curl_setopt ($curl2, CURLOPT_HEADER, 1); //Ejecutamos sesion CURL esta vez sin paso de parámetros por POST $codigofuente2 = curl_exec ($curl2); /* Parseamos $códigofuente2 para quedarnos con las cookies que aparecen en la cabecera http (http response). La cabecera http que precede a la página solicitada incluye una serie de líneas que comienzan con la directiva Set-Cookie. A continuación aparece el name=value de la cookie que el servidor quiere que almacene el navegador. Tras un ; pueden aparecer una serie de atributos de la cookie. Lo que nos interesa a nosotros es este name=value que es lo que incluiremos (utilizando la opción CURL_COOKIE) en la cabecera de la siguiente petición que establezcamos. La cabecera http enviada por el servidor tiene la siguiente estructura: HTTP/ OK Set-Cookie: name=value Set-Cookie: name2=value2; Expires=Wed, 09 Jun :18:14 GMT Content-type: text/html (content of page) */ $start = strpos($codigofuente2, "Set-Cookie"); $end = strpos($codigofuente2, "Content-Type"); $parts = split("set-cookie: ",substr($codigofuente2, $start, $end-$start)); $cookies = array(); foreach ($parts as $co){ $cd = split(";",$co); if (!empty($cd[0])) /* cada vez que se recorre el bucle se añade un elemento a la matriz de tamaño indeterminado $cookies[] */ $cookies[] = $cd[0]; $cookies_sesion=implode(";",$cookies); curl_close ($curl2); //Cerramos sesion CURL $curl3 = curl_init(); //Nueva sesion CURL $url3=' ; curl_setopt ($curl3, CURLOPT_URL, $url3); //Direccion de destino /* Establecemos el valor de las cookies en la nueva petición. Las cookies las hemos obtenido parseando la cabecera http (http header de la enterior petición) */ curl_setopt($curl3, CURLOPT_COOKIE, $cookies_sesion); //Resultado en una cadena de texto curl_setopt ($curl3, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl3, CURLOPT_FOLLOWLOCATION, 0); 138

4 curl_setopt ($curl3, CURLOPT_USERAGENT, $agente); curl_setopt ($curl3, CURLOPT_HEADER, 0); //Oculta encabezado curl_setopt ($curl3, CURLOPT_SSLVERSION, 3); curl_setopt ($curl3, CURLOPT_SSL_VERIFYPEER, true); curl_setopt ($curl3, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt ($curl3, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl3, CURLOPT_POST, 0); //Ejecutamos sesion CURL $codigofuente3 = curl_exec ($curl3); /* Hay que obtener una matriz y después un JSON con los días de cita disponibles */ $html->load($codigofuente3); /*Comprobamos si hay cita pedida. Si la hay se genera un json con los datos de la cita.*/ $compruebacita=$html->find('a[class=enlace_cancelar_cita]',0)->href; if ($compruebacita!=null){ $matrizdatos['sesion']=$cookies_sesion; $matrizdatos['comprueba_acceso']="ok"; $matrizdatos['enlace_cancelar']=$html- >find('a[class=enlace_cancelar_cita]',0)->href; $matrizdatos['fecha_solicitud']=utf8_encode($html- >find('span[class=letra_pequena_fecha]',0)->innertext); $matrizdatos['fecha_cita']=utf8_encode($html- >find('strong[class=letra_justificante_cita_negrita_big]',0)->innertext); $matrizdatos['hora_cita']=utf8_encode($html- >find('strong[class=letra_justificante_cita_negrita_big]',1)->innertext); $matrizdatos['orden']=utf8_encode($html- >find('strong[class=letra_justificante_cita_negrita_big]',2)->innertext); $matrizdatos['centro']=utf8_encode($html- >find('td[class=letra_justificante_cita_negrita]',0)->innertext); $matrizdatos['direccion']=utf8_encode($html- >find('td[class=letra_justificante_cita_negrita]',2)->innertext); $matrizdatos['ubicacion']=trim(utf8_encode(html_entity_decode($html- >find('td[class=letra_justificante_cita_negrita]',3)->innertext))); $matrizdatos['profesional']=utf8_encode($html- >find('td[class=letra_justificante_cita_negrita]',4)->innertext); $matrizdatos['nombre_usuario']=trim(utf8_encode(html_entity_decode($html- >find('span[class=letra_justificante_cita_negrita]',0)->innertext))); $matrizdatos['fecha_solicitud']=trim(utf8_encode(html_entity_decode($html- >find('span[class=letra_justificante_cita]',4)->innertext))); curl_close ($curl3); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html para no malgastar memoria $json=json_encode($matrizdatos); print (utf8_encode($json)); print ('{"segundojson":"relleno"'); /* Si $compruebacita=null es que no hay cita asignada todavía */ for ( $i = 0 ; $i <= 13 ; $i ++) { $matrizdias['dia'.$i]['value']=$html->find('input[id=dia'.$i.']',0)- >value; 139

5 $matrizdias['dia'.$i]['cadena']=utf8_encode($html- >find('label[for=dia'.$i.']',0)->innertext); /* Array asociativo de datos. Como no hay cita asignada, al elemento "enlace_cancelar" le asignamos la cadena "no hay cita que cancelar". Este valor será el que utilice el widget para saber si debe ir a la vista MostrarDias o la la vista CitaAsignada: */ $matrizdatos['sesion']=$cookies_sesion; $matrizdatos['comprueba_acceso']="ok"; $matrizdatos['enlace_cancelar']="no hay cita que cancelar"; $matrizdatos['tipocita']=$html->find('input[name=tipocita]',0)->value; $matrizdatos['actividad_agenda']=$html- >find('input[name=actividad_agenda]',0)->value; $matrizdatos['modalidad_agenda']=$html- >find('input[name=modalidad_agenda]',0)->value; $matrizdatos['codigo_agenda']=$html->find('input[name=codigo_agenda]',0)- >value; $matrizdatos['codigo_profesional']=$html- >find('input[name=codigo_profesional]',0)->value; $matrizdatos['domicilio_usuario']=$html- >find('input[name=domicilio_usuario]',0)->value; $matrizdatos['nuss_usuario']=trim($html->find('input[name=nuss_usuario]',0)- >value); $matrizdatos['nombre_usuario']=trim($html- >find('input[name=nombre_usuario]',0)->value); $matrizdatos['telefonos_usuario']=$html- >find('input[name=telefonos_usuario]',0)->value; $matrizdatos['desplazado']=$html->find('input[name=desplazado]',0)->value; $matrizdatos['tarea_desc']=$html->find('input[name=tarea_desc]',0)->value; $matrizdatos['centro_desc']=$html->find('input[name=centro_desc]',0)->value; $matrizdatos['centro_codigo']=$html->find('input[name=centro_codigo]',0)- >value; $matrizdatos['nombre_profesional']=$html- >find('input[name=nombre_profesional]',0)->value; curl_close ($curl3); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html para no malgastar memoria $json2=json_encode($matrizdatos); print (utf8_encode($json2)); $json=json_encode($matrizdias); print (utf8_encode($json)); //Hacemos la llamada a la función loginintersas $codigofuente3 = loginintersas (' 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-us; rv: ) Gecko/ Firefox/ ');?> 140

6 Archivo seleccion_de_cita2.php <?php //Incluimos la librería para parsear html include_once('simple_html_dom.php'); function selecciondecita ($url, $agente) { foreach($_post as $nombre_campo => $valor){ $asignacion = "$". $nombre_campo. "='". $valor. "';"; eval($asignacion); $camposfijos = '&cookies_sesion='.$cookies_sesion.'&tipocita='.$tipocita.'&actividad_agenda='.$ac tividad_agenda.'&modalidad_agenda='.$modalidad_agenda.'&codigo_agenda='.$codigo_ag enda.'&codigo_profesional='.$codigo_profesional.'&domicilio_usuario='.$domicilio_u suario.'&nuss_usuario='.$nuss_usuario.'&nombre_usuario='.$nombre_usuario.'&telefon os_usuario='.$telefonos_usuario.'&desplazado='.$desplazado.'&tarea_desc='.$tarea_d esc.'&centro_desc='.$centro_desc.'&centro_codigo='.$centro_codigo.'&nombre_profesi onal='.$nombre_profesional; $campos = 'diacita='.$diacita0.$camposfijos; $curl0 = curl_init(); //Nueva sesion CURL curl_setopt ($curl0, CURLOPT_URL, $url); //Direccion de destino /* Establecemos el valor de las cookies en la nueva petición. Las cookies se han enviado desde el Widget de Cita Médica por POST. */ curl_setopt($curl0, CURLOPT_COOKIE, $cookies_sesion); // Para que el resultado de la petición se almacene en una cadena de texto: curl_setopt ($curl0, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl0, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl0, CURLOPT_USERAGENT, $agente); curl_setopt ($curl0, CURLOPT_HEADER, 0); //Oculta encabezado curl_setopt ($curl0, CURLOPT_SSLVERSION, 3); //Especificamos la versión de ssl /* Para que curl compruebe que el certificado del servidor es válido (que verifique que la CA o Autoridad Certificadora que lo expidió está entre las CA reconocidas) se asigna el valor true a la opción CURLOPT_SSL_VERIFYPEER. */ curl_setopt ($curl0, CURLOPT_SSL_VERIFYPEER, true); /* Comprueba que el common name (CN) del certificado de servidor se corresponde con el dominio al que nos estamos conectando. */ curl_setopt ($curl0, CURLOPT_SSL_VERIFYHOST, 2); /* Con la siguiente opción le indicamos a curl que confíe en los certificados de servidor firmados por una CA cuyo certificado raiz es FNMTClase2CA-FNMT.crt. Este es el certificado raiz de la FNMT que es la autoridad certificadora que expide el certificado de servidor del servidor al que estamos intentando acceder vía https (el servidor de InterS@S). El certificado se ha obtenido exportándolo desde Firefox como certificado X.509 con cadena (PEM). Es fundamental que se exporte en este formato para que sea compatible con Curl. Por otra parte getcwd() es una función de php que devuelve el directorio actual.*/ curl_setopt ($curl0, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl0, CURLOPT_POST, 1); curl_setopt ($curl0, CURLOPT_POSTFIELDS, $campos); //Ejecutamos sesion CURL $codigofuente0 = curl_exec ($curl0); 141

7 $html->load($codigofuente0); //$html = str_get_html($codigofuente0); $matrizhoras0['hora'.$numerohoras]['value']=utf8_encode($html- $matrizhoras0['hora'.$numerohoras]['cadena']=utf8_encode($html- $matrizdatos0['numerohoras']=$numerohoras; $matrizdatos0['codigo_agenda']=utf8_encode($html- $matrizdatos0['modalidad_agenda']=utf8_encode($html- $matrizdatos0['actividad_agenda']=utf8_encode($html- $matrizdatos0['centro_ubicacion_agenda']=utf8_encode($html- $matrizdatos0['codigo_tarea_agenda']=utf8_encode($html- $matrizdatos0['profesional_agenda']=utf8_encode($html- $json=json_encode($matrizdatos0); $json2=json_encode($matrizhoras0); curl_close ($curl0); //Cerramos sesion CURL $html->clear(); $curl1 = curl_init(); //Nueva sesion CURL $campos = 'diacita='.$diacita1.$camposfijos; curl_setopt ($curl1, CURLOPT_URL, $url); curl_setopt($curl1, CURLOPT_COOKIE, $cookies_sesion); curl_setopt ($curl1, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl1, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl1, CURLOPT_USERAGENT, $agente); curl_setopt ($curl1, CURLOPT_HEADER, 0); curl_setopt ($curl1, CURLOPT_SSLVERSION, 3); curl_setopt ($curl1, CURLOPT_SSL_VERIFYPEER, true); curl_setopt ($curl1, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt ($curl1, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl1, CURLOPT_POST, 1); 142

8 curl_setopt ($curl1, CURLOPT_POSTFIELDS, $campos); //Ejecutamos sesion CURL $codigofuente1 = curl_exec ($curl1); $html->load($codigofuente1); $matrizhoras1['hora'.$numerohoras]['value']=utf8_encode($html- $matrizhoras1['hora'.$numerohoras]['cadena']=utf8_encode($html- $matrizdatos1['numerohoras']=$numerohoras; $matrizdatos1['codigo_agenda']=utf8_encode($html- $matrizdatos1['modalidad_agenda']=utf8_encode($html- $matrizdatos1['actividad_agenda']=utf8_encode($html- $matrizdatos1['centro_ubicacion_agenda']=utf8_encode($html- $matrizdatos1['codigo_tarea_agenda']=utf8_encode($html- $matrizdatos1['profesional_agenda']=utf8_encode($html- $json=json_encode($matrizdatos1); $json2=json_encode($matrizhoras1); curl_close ($curl1); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html para evitar falta de memoria $curl2 = curl_init(); //Nueva sesion CURL $campos = 'diacita='.$diacita2.$camposfijos; curl_setopt ($curl2, CURLOPT_URL, $url); curl_setopt($curl2, CURLOPT_COOKIE, $cookies_sesion); curl_setopt ($curl2, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl2, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl2, CURLOPT_USERAGENT, $agente); curl_setopt ($curl2, CURLOPT_HEADER, 0); curl_setopt ($curl2, CURLOPT_SSLVERSION, 3); curl_setopt ($curl2, CURLOPT_SSL_VERIFYPEER, true); curl_setopt ($curl2, CURLOPT_SSL_VERIFYHOST, 2); 143

9 curl_setopt ($curl2, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl2, CURLOPT_POST, 1); curl_setopt ($curl2, CURLOPT_POSTFIELDS, $campos); $codigofuente2 = curl_exec ($curl2); //Ejecutamos sesion CURL $html->load($codigofuente2); $matrizhoras2['hora'.$numerohoras]['value']=utf8_encode($html- $matrizhoras2['hora'.$numerohoras]['cadena']=utf8_encode($html- $matrizdatos2['numerohoras']=$numerohoras; $matrizdatos2['codigo_agenda']=utf8_encode($html- $matrizdatos2['modalidad_agenda']=utf8_encode($html- $matrizdatos2['actividad_agenda']=utf8_encode($html- $matrizdatos2['centro_ubicacion_agenda']=utf8_encode($html- $matrizdatos2['codigo_tarea_agenda']=utf8_encode($html- $matrizdatos2['profesional_agenda']=utf8_encode($html- $json=json_encode($matrizdatos2); $json2=json_encode($matrizhoras2); curl_close ($curl2); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html $curl3 = curl_init(); //Nueva sesion CURL $campos = 'diacita='.$diacita3.$camposfijos; curl_setopt ($curl3, CURLOPT_URL, $url); curl_setopt($curl3, CURLOPT_COOKIE, $cookies_sesion); curl_setopt ($curl3, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl3, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl3, CURLOPT_USERAGENT, $agente); curl_setopt ($curl3, CURLOPT_HEADER, 0); curl_setopt ($curl3, CURLOPT_SSLVERSION, 3); curl_setopt ($curl3, CURLOPT_SSL_VERIFYPEER, true); curl_setopt ($curl3, CURLOPT_SSL_VERIFYHOST, 2); 144

10 curl_setopt ($curl3, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl3, CURLOPT_POST, 1); curl_setopt ($curl3, CURLOPT_POSTFIELDS, $campos); $codigofuente3 = curl_exec ($curl3); //Ejecutamos sesion CURL $html->load($codigofuente3); $matrizhoras3['hora'.$numerohoras]['value']=utf8_encode($html- $matrizhoras3['hora'.$numerohoras]['cadena']=utf8_encode($html- $matrizdatos3['numerohoras']=$numerohoras; $matrizdatos3['codigo_agenda']=utf8_encode($html- $matrizdatos3['modalidad_agenda']=utf8_encode($html- $matrizdatos3['actividad_agenda']=utf8_encode($html- $matrizdatos3['centro_ubicacion_agenda']=utf8_encode($html- $matrizdatos3['codigo_tarea_agenda']=utf8_encode($html- $matrizdatos3['profesional_agenda']=utf8_encode($html- $json=json_encode($matrizdatos3); $json2=json_encode($matrizhoras3); curl_close ($curl3); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html $curl4 = curl_init(); //Nueva sesion CURL $campos = 'diacita='.$diacita4.$camposfijos; curl_setopt ($curl4, CURLOPT_URL, $url); curl_setopt($curl4, CURLOPT_COOKIE, $cookies_sesion); curl_setopt ($curl4, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl4, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl4, CURLOPT_USERAGENT, $agente); curl_setopt ($curl4, CURLOPT_HEADER, 0); curl_setopt ($curl4, CURLOPT_SSLVERSION, 3); curl_setopt ($curl4, CURLOPT_SSL_VERIFYPEER, true); 145

11 curl_setopt ($curl4, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt ($curl4, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl4, CURLOPT_POST, 1); curl_setopt ($curl4, CURLOPT_POSTFIELDS, $campos); $codigofuente4 = curl_exec ($curl4); //Ejecutamos sesion CURL $html->load($codigofuente4); $matrizhoras4['hora'.$numerohoras]['value']=utf8_encode($html- $matrizhoras4['hora'.$numerohoras]['cadena']=utf8_encode($html- $matrizdatos4['numerohoras']=$numerohoras; $matrizdatos4['codigo_agenda']=utf8_encode($html- $matrizdatos4['modalidad_agenda']=utf8_encode($html- $matrizdatos4['actividad_agenda']=utf8_encode($html- $matrizdatos4['centro_ubicacion_agenda']=utf8_encode($html- $matrizdatos4['codigo_tarea_agenda']=utf8_encode($html- $matrizdatos4['profesional_agenda']=utf8_encode($html- $json=json_encode($matrizdatos4); $json2=json_encode($matrizhoras4); curl_close ($curl4); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html $curl5 = curl_init(); //Nueva sesion CURL $campos = 'diacita='.$diacita5.$camposfijos; curl_setopt ($curl5, CURLOPT_URL, $url); //Direccion de destino curl_setopt($curl5, CURLOPT_COOKIE, $cookies_sesion); curl_setopt ($curl5, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl5, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl5, CURLOPT_USERAGENT, $agente); curl_setopt ($curl5, CURLOPT_HEADER, 0); curl_setopt ($curl5, CURLOPT_SSLVERSION, 3); curl_setopt ($curl5, CURLOPT_SSL_VERIFYPEER, true); 146

12 curl_setopt ($curl5, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt ($curl5, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl5, CURLOPT_POST, 1); curl_setopt ($curl5, CURLOPT_POSTFIELDS, $campos); $codigofuente5 = curl_exec ($curl5); //Ejecutamos sesion CURL $html->load($codigofuente5); $matrizhoras5['hora'.$numerohoras]['value']=utf8_encode($html- $matrizhoras5['hora'.$numerohoras]['cadena']=utf8_encode($html- $matrizdatos5['numerohoras']=$numerohoras; $matrizdatos5['codigo_agenda']=utf8_encode($html- $matrizdatos5['modalidad_agenda']=utf8_encode($html- $matrizdatos5['actividad_agenda']=utf8_encode($html- $matrizdatos5['centro_ubicacion_agenda']=utf8_encode($html- $matrizdatos5['codigo_tarea_agenda']=utf8_encode($html- $matrizdatos5['profesional_agenda']=utf8_encode($html- $json=json_encode($matrizdatos5); $json2=json_encode($matrizhoras5); curl_close ($curl5); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html $curl6 = curl_init(); //Nueva sesion CURL $campos = 'diacita='.$diacita6.$camposfijos; curl_setopt ($curl6, CURLOPT_URL, $url); curl_setopt($curl6, CURLOPT_COOKIE, $cookies_sesion); curl_setopt ($curl6, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl6, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl6, CURLOPT_USERAGENT, $agente); curl_setopt ($curl6, CURLOPT_HEADER, 0); curl_setopt ($curl6, CURLOPT_SSLVERSION, 3); curl_setopt ($curl6, CURLOPT_SSL_VERIFYPEER, true); 147

13 curl_setopt ($curl6, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt ($curl6, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl6, CURLOPT_POST, 1); curl_setopt ($curl6, CURLOPT_POSTFIELDS, $campos); $codigofuente6 = curl_exec ($curl6); //Ejecutamos sesion CURL $html->load($codigofuente6); $matrizhoras6['hora'.$numerohoras]['value']=utf8_encode($html- $matrizhoras6['hora'.$numerohoras]['cadena']=utf8_encode($html- $matrizdatos6['numerohoras']=$numerohoras; $matrizdatos6['codigo_agenda']=utf8_encode($html- $matrizdatos6['modalidad_agenda']=utf8_encode($html- $matrizdatos6['actividad_agenda']=utf8_encode($html- $matrizdatos6['centro_ubicacion_agenda']=utf8_encode($html- $matrizdatos6['codigo_tarea_agenda']=utf8_encode($html- $matrizdatos6['profesional_agenda']=utf8_encode($html- $json=json_encode($matrizdatos6); $json2=json_encode($matrizhoras6); curl_close ($curl6); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html $curl7 = curl_init(); //Nueva sesion CURL $campos = 'diacita='.$diacita7.$camposfijos; curl_setopt ($curl7, CURLOPT_URL, $url); curl_setopt($curl7, CURLOPT_COOKIE, $cookies_sesion); curl_setopt ($curl7, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl7, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl7, CURLOPT_USERAGENT, $agente); curl_setopt ($curl7, CURLOPT_HEADER, 0); curl_setopt ($curl7, CURLOPT_SSLVERSION, 3); 148

14 curl_setopt ($curl7, CURLOPT_SSL_VERIFYPEER, true); curl_setopt ($curl7, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt ($curl7, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl7, CURLOPT_POST, 1); curl_setopt ($curl7, CURLOPT_POSTFIELDS, $campos); $codigofuente7 = curl_exec ($curl7); //Ejecutamos sesion CURL $html->load($codigofuente7); $matrizhoras7['hora'.$numerohoras]['value']=utf8_encode($html- $matrizhoras7['hora'.$numerohoras]['cadena']=utf8_encode($html- $matrizdatos7['numerohoras']=$numerohoras; $matrizdatos7['codigo_agenda']=utf8_encode($html- $matrizdatos7['modalidad_agenda']=utf8_encode($html- $matrizdatos7['actividad_agenda']=utf8_encode($html- $matrizdatos7['centro_ubicacion_agenda']=utf8_encode($html- $matrizdatos7['codigo_tarea_agenda']=utf8_encode($html- $matrizdatos7['profesional_agenda']=utf8_encode($html- $json=json_encode($matrizdatos7); $json2=json_encode($matrizhoras7); curl_close ($curl7); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html $curl8 = curl_init(); //Nueva sesion CURL $campos = 'diacita='.$diacita8.$camposfijos; curl_setopt ($curl8, CURLOPT_URL, $url); curl_setopt($curl8, CURLOPT_COOKIE, $cookies_sesion); curl_setopt ($curl8, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl8, CURLOPT_FOLLOWLOCATION, 0); 149

15 curl_setopt ($curl8, CURLOPT_USERAGENT, $agente); curl_setopt ($curl8, CURLOPT_HEADER, 0); curl_setopt ($curl8, CURLOPT_SSLVERSION, 3); curl_setopt ($curl8, CURLOPT_SSL_VERIFYPEER, true); curl_setopt ($curl8, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt ($curl8, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl8, CURLOPT_POST, 1); curl_setopt ($curl8, CURLOPT_POSTFIELDS, $campos); $codigofuente8 = curl_exec ($curl8); //Ejecutamos sesion CURL $html->load($codigofuente8); $matrizhoras8['hora'.$numerohoras]['value']=utf8_encode($html- $matrizhoras8['hora'.$numerohoras]['cadena']=utf8_encode($html- $matrizdatos8['numerohoras']=$numerohoras; $matrizdatos8['codigo_agenda']=utf8_encode($html- $matrizdatos8['modalidad_agenda']=utf8_encode($html- $matrizdatos8['actividad_agenda']=utf8_encode($html- $matrizdatos8['centro_ubicacion_agenda']=utf8_encode($html- $matrizdatos8['codigo_tarea_agenda']=utf8_encode($html- $matrizdatos8['profesional_agenda']=utf8_encode($html- $json=json_encode($matrizdatos8); $json2=json_encode($matrizhoras8); curl_close ($curl8); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html $curl9 = curl_init(); //Nueva sesion CURL $campos = 'diacita='.$diacita9.$camposfijos; curl_setopt ($curl9, CURLOPT_URL, $url); curl_setopt($curl9, CURLOPT_COOKIE, $cookies_sesion); curl_setopt ($curl9, CURLOPT_RETURNTRANSFER, 1); 150

16 curl_setopt ($curl9, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl9, CURLOPT_USERAGENT, $agente); curl_setopt ($curl9, CURLOPT_HEADER, 0); curl_setopt ($curl9, CURLOPT_SSLVERSION, 3); curl_setopt ($curl9, CURLOPT_SSL_VERIFYPEER, true); curl_setopt ($curl9, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt ($curl9, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl9, CURLOPT_POST, 1); curl_setopt ($curl9, CURLOPT_POSTFIELDS, $campos); $codigofuente9 = curl_exec ($curl9); //Ejecutamos sesion CURL $html->load($codigofuente9); $matrizhoras9['hora'.$numerohoras]['value']=utf8_encode($html- $matrizhoras9['hora'.$numerohoras]['cadena']=utf8_encode($html- $matrizdatos9['numerohoras']=$numerohoras; $matrizdatos9['codigo_agenda']=utf8_encode($html- $matrizdatos9['modalidad_agenda']=utf8_encode($html- $matrizdatos9['actividad_agenda']=utf8_encode($html- $matrizdatos9['centro_ubicacion_agenda']=utf8_encode($html- $matrizdatos9['codigo_tarea_agenda']=utf8_encode($html- $matrizdatos9['profesional_agenda']=utf8_encode($html- $json=json_encode($matrizdatos9); $json2=json_encode($matrizhoras9); curl_close ($curl9); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html $curl10 = curl_init(); //Nueva sesion CURL $campos = 'diacita='.$diacita10.$camposfijos; curl_setopt ($curl10, CURLOPT_URL, $url); curl_setopt($curl10, CURLOPT_COOKIE, $cookies_sesion); 151

17 curl_setopt ($curl10, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl10, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl10, CURLOPT_USERAGENT, $agente); curl_setopt ($curl10, CURLOPT_HEADER, 0); curl_setopt ($curl10, CURLOPT_SSLVERSION, 3); curl_setopt ($curl10, CURLOPT_SSL_VERIFYPEER, true); curl_setopt ($curl10, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt ($curl10, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl10, CURLOPT_POST, 1); curl_setopt ($curl10, CURLOPT_POSTFIELDS, $campos); $codigofuente10 = curl_exec ($curl10); //Ejecutamos sesion CURL $html->load($codigofuente10); $matrizhoras10['hora'.$numerohoras]['value']=utf8_encode($html- $matrizhoras10['hora'.$numerohoras]['cadena']=utf8_encode($html- $matrizdatos10['numerohoras']=$numerohoras; $matrizdatos10['codigo_agenda']=utf8_encode($html- $matrizdatos10['modalidad_agenda']=utf8_encode($html- $matrizdatos10['actividad_agenda']=utf8_encode($html- $matrizdatos10['centro_ubicacion_agenda']=utf8_encode($html- $matrizdatos10['codigo_tarea_agenda']=utf8_encode($html- $matrizdatos10['profesional_agenda']=utf8_encode($html- $json=json_encode($matrizdatos10); $json2=json_encode($matrizhoras10); curl_close ($curl10); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html $curl11 = curl_init(); //Nueva sesion CURL $campos = 'diacita='.$diacita11.$camposfijos; 152

18 curl_setopt ($curl11, CURLOPT_URL, $url); curl_setopt($curl11, CURLOPT_COOKIE, $cookies_sesion); curl_setopt ($curl11, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl11, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl11, CURLOPT_USERAGENT, $agente); curl_setopt ($curl11, CURLOPT_HEADER, 0); curl_setopt ($curl11, CURLOPT_SSLVERSION, 3); curl_setopt ($curl11, CURLOPT_SSL_VERIFYPEER, true); curl_setopt ($curl11, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt ($curl11, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl11, CURLOPT_POST, 1); curl_setopt ($curl11, CURLOPT_POSTFIELDS, $campos); $codigofuente11 = curl_exec ($curl11); //Ejecutamos sesion CURL $html->load($codigofuente11); $matrizhoras11['hora'.$numerohoras]['value']=utf8_encode($html- $matrizhoras11['hora'.$numerohoras]['cadena']=utf8_encode($html- $matrizdatos11['numerohoras']=$numerohoras; $matrizdatos11['codigo_agenda']=utf8_encode($html- $matrizdatos11['modalidad_agenda']=utf8_encode($html- $matrizdatos11['actividad_agenda']=utf8_encode($html- $matrizdatos11['centro_ubicacion_agenda']=utf8_encode($html- $matrizdatos11['codigo_tarea_agenda']=utf8_encode($html- $matrizdatos11['profesional_agenda']=utf8_encode($html- $json=json_encode($matrizdatos11); $json2=json_encode($matrizhoras11); curl_close ($curl11); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html $curl12 = curl_init(); //Nueva sesion CURL 153

19 $campos = 'diacita='.$diacita12.$camposfijos; curl_setopt ($curl12, CURLOPT_URL, $url); curl_setopt($curl12, CURLOPT_COOKIE, $cookies_sesion); curl_setopt ($curl12, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl12, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl12, CURLOPT_USERAGENT, $agente); curl_setopt ($curl12, CURLOPT_HEADER, 0); curl_setopt ($curl12, CURLOPT_SSLVERSION, 3); curl_setopt ($curl12, CURLOPT_SSL_VERIFYPEER, true); curl_setopt ($curl12, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt ($curl12, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl12, CURLOPT_POST, 1); curl_setopt ($curl12, CURLOPT_POSTFIELDS, $campos); $codigofuente12 = curl_exec ($curl12); //Ejecutamos sesion CURL $html->load($codigofuente12); $matrizhoras12['hora'.$numerohoras]['value']=utf8_encode($html- $matrizhoras12['hora'.$numerohoras]['cadena']=utf8_encode($html- $matrizdatos12['numerohoras']=$numerohoras; $matrizdatos12['codigo_agenda']=utf8_encode($html- $matrizdatos12['modalidad_agenda']=utf8_encode($html- $matrizdatos12['actividad_agenda']=utf8_encode($html- $matrizdatos12['centro_ubicacion_agenda']=utf8_encode($html- $matrizdatos12['codigo_tarea_agenda']=utf8_encode($html- $matrizdatos12['profesional_agenda']=utf8_encode($html- $json=json_encode($matrizdatos12); $json2=json_encode($matrizhoras12); curl_close ($curl12); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html 154

20 $curl13 = curl_init(); //Nueva sesion CURL $campos = 'diacita='.$diacita13.$camposfijos; curl_setopt ($curl13, CURLOPT_URL, $url); curl_setopt($curl13, CURLOPT_COOKIE, $cookies_sesion); curl_setopt ($curl13, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl13, CURLOPT_FOLLOWLOCATION, 0); curl_setopt ($curl13, CURLOPT_USERAGENT, $agente); curl_setopt ($curl13, CURLOPT_HEADER, 0); curl_setopt ($curl13, CURLOPT_SSLVERSION, 3); curl_setopt ($curl13, CURLOPT_SSL_VERIFYPEER, true); curl_setopt ($curl13, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt ($curl13, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl13, CURLOPT_POST, 1); curl_setopt ($curl13, CURLOPT_POSTFIELDS, $campos); $codigofuente13 = curl_exec ($curl13); //Ejecutamos sesion CURL $html->load($codigofuente13); $matrizhoras13['hora'.$numerohoras]['value']=utf8_encode($html- $matrizhoras13['hora'.$numerohoras]['cadena']=utf8_encode($html- $matrizdatos13['numerohoras']=$numerohoras; $matrizdatos13['codigo_agenda']=utf8_encode($html- $matrizdatos13['modalidad_agenda']=utf8_encode($html- $matrizdatos13['actividad_agenda']=utf8_encode($html- $matrizdatos13['centro_ubicacion_agenda']=utf8_encode($html- $matrizdatos13['codigo_tarea_agenda']=utf8_encode($html- $matrizdatos13['profesional_agenda']=utf8_encode($html- $json=json_encode($matrizdatos13); $json2=json_encode($matrizhoras13); curl_close ($curl13); //Cerramos sesion CURL $html->clear();//eliminamos el objeto html 155

21 //Hacemos la llamada a la función selecciondecita() $codigofuente4 = selecciondecita (' 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-us; rv: ) Gecko/ Firefox/ ');?> 156

22 Archivo cita_asignada.php <?php //Incluimos la librería para parsear html include_once('simple_html_dom.php'); function citaasignada ($url, $agente) { foreach($_post as $nombre_campo => $valor){ $asignacion = "$". $nombre_campo. "='". $valor. "';"; eval($asignacion); $curl5 = curl_init(); //Nueva sesion CURL $campos = 'horacita='.$horacita.'&cookies_sesion='.$cookies_sesion.'&codigo_agenda='.$codigo _agenda.'&actividad_agenda='.$actividad_agenda.'&modalidad_agenda='.$modalidad_age nda.'&centro_ubicacion_agenda='.$centro_ubicacion_agenda.'&codigo_tarea_agenda='.$ codigo_tarea_agenda.'&profesional_agenda='.$profesional_agenda.'&nombre_usuario='. $nombre_usuario.'&domicilio_usuario='.$domicilio_usuario.'&telefonos_usuario='.$te lefonos_usuario.'&nuss_usuario='.$nuss_usuario; curl_setopt ($curl5, CURLOPT_URL, $url); //Direccion de destino //Establecemos el valor de las cookies en la nueva petición. curl_setopt($curl5, CURLOPT_COOKIE, $cookies_sesion); curl_setopt ($curl5, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl5, CURLOPT_FOLLOWLOCATION, 1); curl_setopt ($curl5, CURLOPT_USERAGENT, $agente); curl_setopt ($curl5, CURLOPT_HEADER, 1); //Se incluye el encabezado en la salida curl_setopt ($curl5, CURLOPT_SSLVERSION, 3); /* Para que se compruebe que el certificado del servidor es válido verificando que la CA (Autoridad Certificadora) que lo expidió está entre las CA reconocidas ponemos la opción CURLOPT_SSL_VERIFYPEER a true. */ curl_setopt ($curl5, CURLOPT_SSL_VERIFYPEER, true); curl_setopt ($curl5, CURLOPT_SSL_VERIFYHOST, 2); // Para que la FNMT sea reconocida como autoridad certificadora: curl_setopt ($curl5, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl5, CURLOPT_POST, 1); curl_setopt ($curl5, CURLOPT_POSTFIELDS, $campos); $codigofuente5 = curl_exec ($curl5); //Ejecutamos sesion CURL $html->load($codigofuente5); /* Comprobamos que la sesión no ha caducado. Si hubiese caducado lo que obtenemos, en lugar de los datos de la cita, es un mensaje de sesión caducada: */ $comprueba_sesion=trim($html->find('span[class=letra_contenido_info]',0)- >innertext); if ($comprueba_sesion=="en estos momentos no podemos ofrecerle este servicio a través de Inters@s." $comprueba_sesion=="su tiempo de sesión ha caducado. Por favor, identifíquese de nuevo en InterS@S."){ $json2='{"comprueba_sesion":"'.$comprueba_sesion.'"'; print (utf8_encode($json2)); 157

23 /* Hay que obtener una matriz y después un JSON con los datos que se mostrarán en la vista correspondiente (los datos de la cita). */ $matrizdatos['comprueba_sesion']="ok"; $matrizdatos['enlace_cancelar']=utf8_encode($html- >find('a[class=enlace_cancelar_cita]',0)->href); $matrizdatos['fecha_solicitud']=utf8_encode($html- >find('span[class=letra_pequena_fecha]',0)->innertext); $matrizdatos['fecha_cita']=utf8_encode($html- >find('strong[class=letra_justificante_cita_negrita_big]',0)->innertext); $matrizdatos['hora_cita']=utf8_encode($html- >find('strong[class=letra_justificante_cita_negrita_big]',1)->innertext); $matrizdatos['orden']=utf8_encode($html- >find('strong[class=letra_justificante_cita_negrita_big]',2)->innertext); $matrizdatos['centro']=utf8_encode($html- >find('td[class=letra_justificante_cita_negrita]',0)->innertext); $matrizdatos['direccion']=utf8_encode($html- >find('td[class=letra_justificante_cita_negrita]',2)->innertext); $matrizdatos['ubicacion']=utf8_encode(trim(html_entity_decode($html- >find('td[class=letra_justificante_cita_negrita]',3)->innertext))); $matrizdatos['profesional']=utf8_encode($html- >find('td[class=letra_justificante_cita_negrita]',4)->innertext); $matrizdatos['nombre_usuario']=trim(utf8_encode(html_entity_decode($html- >find('span[class=letra_justificante_cita_negrita]',0)->innertext))); $matrizdatos['fecha_solicitud']=trim(utf8_encode(html_entity_decode($html- >find('span[class=letra_justificante_cita]',4)->innertext))); $json=json_encode($matrizdatos); curl_close ($curl5); //Cerramos sesion CURL $html->clear(); //Hacemos la llamada a la función selecciondecita() $codigofuente5 = citaasignada (' 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-us; rv: ) Gecko/ Firefox/ ');?> 158

24 Archivo cancelacion_de_cita.php <?php //Incluimos la librería para parsear html include_once('simple_html_dom.php'); function cancelaciondecita ($url, $agente) { foreach($_post as $nombre_campo => $valor){ $asignacion = "$". $nombre_campo. "='". $valor. "';"; eval($asignacion); /********************************************************************************/ $curl0 = curl_init(); //Nueva sesion CURL $enlace_cancelar_completo=" e_cancelar0."&hora_inicio=".urlencode($hora_inicio)."&fecha=".urlencode($fecha)."& nombre_usuario=".urlencode($nombre_usuario); curl_setopt ($curl0, CURLOPT_URL, $enlace_cancelar_completo); /* Establecemos el valor de las cookies en la nueva petición. Las cookies se han pasado por POST desde el widget con el nombre cookies_sesion y en el bucle for del inicio de la función se han guardado en la variable $cookies_sesion. */ curl_setopt($curl0, CURLOPT_COOKIE, $cookies_sesion); curl_setopt ($curl0, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl0, CURLOPT_FOLLOWLOCATION, 1); curl_setopt ($curl0, CURLOPT_USERAGENT, $agente); curl_setopt ($curl0, CURLOPT_HEADER, 0); //Oculta encabezado // Se especifica la versión de SSL del servidor de InterS@S: curl_setopt ($curl0, CURLOPT_SSLVERSION, 3); /* Con la siguiente opción se exige la comprobación del certificado del servidor para lo cual se verificará que la CA (Autoridad Certificadora) que lo expidió está entre las CA reconocidas. */ curl_setopt ($curl0, CURLOPT_SSL_VERIFYPEER, true); /* Se comprueba que el common name (CN) del certificado de servidor se corresponde con el dominio al que nos estamos conectando. */ curl_setopt ($curl0, CURLOPT_SSL_VERIFYHOST, 2); /* En esta opción de curl se especifica el certificado raiz de la FNMT (CA que expide el certificado del servidor al que estamos intentando acceder vía https). Con esto le decimos a curl que es una CA reconocida. El certificado se obtiene de exportándolo desde Firefox como certificado X.509 con cadena (PEM). Es fundamental que esté en este formato para que sea compatible con Curl. Por otra parte getcwd() es una función de php que obtiene el directorio actual. */ curl_setopt ($curl0, CURLOPT_CAINFO, getcwd().'/fnmtclase2ca-fnmt.crt'); curl_setopt ($curl0, CURLOPT_POST, 0); //curl_setopt ($curl0, CURLOPT_POSTFIELDS, $campos); $codigofuente0 = curl_exec ($curl0); //Ejecutamos sesion CURL curl_close ($curl0); //Cerramos sesion CURL $html->load($codigofuente0); /* trim() elimina los espacios del inicio y del final de la cadena, utf8_encode() pasa la codificación de ISO a utf8, html_entity_decode() convierte las entidades html que haya en la cadena (como í) a su correspondiente carácter (í en este caso): */ 159

25 $matriz['informacion']=trim(utf8_encode(html_entity_decode($html- >find('span[class=letra_contenido_info]',0)->innertext))); /* Con la función json_encode() de PHP obtenermos una cadena en formato json a partir de la matriz asociativa $matriz */ $json=json_encode($matriz); $html->clear(); //Hacemos la llamada a la función selecciondecita() $codigofuente4 = cancelaciondecita (' 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-us; rv: ) Gecko/ Firefox/ ');?> 160

Pasarela para envíos de faxes a través de interfaz HTTPS

Pasarela para envíos de faxes a través de interfaz HTTPS Pasarela para envíos de faxes a través de interfaz HTTPS La pasarela para envío de faxes a través de interfaz HTTPS permite el envío de faxes M2M (De maquina a maquina) a traves de la ruta https://appsnetelipcom/

Más detalles

Integración HTTP REST. Versión 2.0

Integración HTTP REST. Versión 2.0 Integración HTTP REST Versión 2.0 Índice Introducción Pag: 3 Plataforma Técnica Pag: 4 Petición de envío de SMS Pag: 4 Ejemplo de petición CURL Pag: 5 Ejemplo de petición PHP Pag: 5 Códigos de estado de

Más detalles

Integración REST Text2Speech

Integración REST Text2Speech 1 Integración REST Text2Speech Versión 1.1 2 Índice de Contenidos Introducción Pág. 3 Plataforma Técnica Petición de envíos de mensajes de voz Pág. 4 Petición JSON Pág. 4 Ejemplo de petición CURL Pág.

Más detalles

PUSH WEB SERVER HTTP GATEWAY. Versión 1.0

PUSH WEB SERVER HTTP GATEWAY. Versión 1.0 PUSH WEB SERVER HTTP GATEWAY Versión 1.0 Índice Introducción 2 Plataforma técnica 2 Petición de creación de campaña PUSH WEB 3 URL 3 Método 3 Parámetros 3 Obligatorios 3 name (string) 3 type (string) 3

Más detalles

Pasarela para envíos de faxes a través de interfaz HTTPS

Pasarela para envíos de faxes a través de interfaz HTTPS Pasarela para envíos de faxes a través de interfaz HTTPS La pasarela para envío de faxes a través de interfaz HTTPS permite el envío de faxes M2M (De maquina a maquina) a traves de la ruta https://appsnetelipcom/

Más detalles

factesol Documentation

factesol Documentation factesol Documentation Versión 1.0 Ti Soluciones 06 de septiembre de 2018 Índice general 1. Indice 3 1.1. Archivos de Texto............................................ 3 1.2. Endpoints.................................................

Más detalles

TELKIA. Especificación, SMSBROKER HTTP Protocol TELKIA. Versión: 2.5 Fecha: 15-02-2015. Page 1

TELKIA. Especificación, SMSBROKER HTTP Protocol TELKIA. Versión: 2.5 Fecha: 15-02-2015. Page 1 TELKIA Especificación, SMSBROKER HTTP Protocol TELKIA Versión: 2.5 Fecha: 15-02-2015 Page 1 Registro de Cambios Este documento es revisado periódicamente para mantener consistencia con las actualizaciones

Más detalles

REA Registro de Empresas Acreditadas. Guía de configuración previa

REA Registro de Empresas Acreditadas. Guía de configuración previa REA Registro de Empresas Acreditadas Índice 1. Introducción...3 2. Requisitos mínimos...4 3. Certificados de usuario...5 4. Certificados de servidor...6 5. Configuración de sitios de confianza...7 6. Máquina

Más detalles

Servicios en Red. UT6. Servicio HTTP

Servicios en Red. UT6. Servicio HTTP Servicios en Red UT6. Servicio HTTP 1.El servicio HTTP Protocolo de Transferencia de HiperTexto (HyperTextTransfer Protocol) Es el método más común de intercambio de información en la WorldWideWeb, por

Más detalles

Guia práctica de PHP 5 Francisco Charte Ojeda

Guia práctica de PHP 5 Francisco Charte Ojeda Guia práctica de PHP 5 Francisco Charte Ojeda Introducción Páginas de servidor PHP Creación de páginas PHP Cómo usar este libro Convenciones tipográficas 1. Instalación 1.1. Introducción 1.2. Configuración

Más detalles

TEMA 4: SERVICIOS HTTP

TEMA 4: SERVICIOS HTTP TEMA 4: SERVICIOS HTTP QUE ES HTTP? HyperText Transfer Protocol Creado para compartir datos científicos Es el método más común para compartir datos en la WWW HTTPS responde a nuevas necesidades WWW no

Más detalles

Objeto petición. Introducción. Mensajes de petición. Copyright 2016 Node Academy. Reservados todos los derechos. Objeto petición 1

Objeto petición. Introducción. Mensajes de petición. Copyright 2016 Node Academy. Reservados todos los derechos. Objeto petición 1 Objeto petición Tiempo estimado: 15min Un buen conocimiento de HTTP y de los mensajes de petición y respuesta es muy, pero que muy recomendable cuando desarrollamos aplicaciones webs, sobre todo, bajo

Más detalles

HEADERS CABECERAS HTPP. QUÉ SON Y PARA QUÉ SIRVEN. REQUEST Y STATUS LINE. REFERER, AUTHORIZATION, USER- AGENT (CU01208F)

HEADERS CABECERAS HTPP. QUÉ SON Y PARA QUÉ SIRVEN. REQUEST Y STATUS LINE. REFERER, AUTHORIZATION, USER- AGENT (CU01208F) APRENDERAPROGRAMAR.COM HEADERS CABECERAS HTPP. QUÉ SON Y PARA QUÉ SIRVEN. REQUEST Y STATUS LINE. REFERER, AUTHORIZATION, USER- AGENT (CU01208F) Sección: Cursos Categoría: Tutorial básico del programador

Más detalles

De esta manera, cuando el usuario rellena un campo cómo el siguiente... <input type="text" name="telefono"> </form>

De esta manera, cuando el usuario rellena un campo cómo el siguiente... <input type=text name=telefono> </form> TIPS FORMULARIOS PHP Al enviar un formulario HTML, los datos són enviados al servidor Web y este es capaz de procesarlos y realizar un seguido de acciones en función de los datos introducidos, los datos

Más detalles

Programación páginas web con PHP

Programación páginas web con PHP Programación páginas web con PHP Duración: 65 horas Objetivos: Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte cliente con JavaScript y la programación de la parte

Más detalles

Documentación de la API clickline.com

Documentación de la API clickline.com Documentación de la API clickline.com Esta parte de la documentación incluye la descripción del protocolo y las muestras de herramientas que se utilizan para interactuar con el servidor de Clickline.com

Más detalles

Documentación de integración y recomendaciones

Documentación de integración y recomendaciones Documentación de integración y recomendaciones de uso en FACe Equipo de Desarrollo de la plataforma FACe Versión 1.0.4 Esta página se ha dejado vacía a propósito Índice de contenidos Capítulo 1 Introducción..........................................

Más detalles

Procesamiento y. Validación de Formularios. en PHP

Procesamiento y. Validación de Formularios. en PHP Validación de Formularios Procesamiento y en PHP Grupo de Ingeniería del Software y Bases de Datos Universidad de Sevilla Presentación Lógica de Negocio Datos Procesamiento y de formularios en PHP Procesamiento

Más detalles

Procesamiento y Validación de formularios en PHP

Procesamiento y Validación de formularios en PHP Versión original: Jose Antonio Parejo (noviembre 2008) Tiempo: 2h escuela técnica superior de ingeniería informática Procesamiento y Validación de formularios en PHP Departamento de Lenguajes Grupo de

Más detalles

hipervinculos La página que rescata el valor pasado como parámetro es la siguiente: <html> <head> <title>problema</title> </head> <body> <?

hipervinculos La página que rescata el valor pasado como parámetro es la siguiente: <html> <head> <title>problema</title> </head> <body> <? hipervinculos Confeccionaremos una página que muestre tres hipervínculos, cada uno tiene por objetivo mostrar en una página las tablas de multiplicar del 2, del 3 o la del 5. La primer página es un archivo

Más detalles

MT - HTML API Interface

MT - HTML API Interface MT - HTML API Interface Copyright 2008-2009 FTL Management S.A.. www.txtcel.com Índice Descripción 2 Enviar SMS 5 Verificar estado de un SMS 7 Verificar el saldo 8 Anexo 1 - Estados de un SMS 9 Anexo

Más detalles

Documentación de integración y recomendaciones

Documentación de integración y recomendaciones Documentación de integración y recomendaciones de uso en FACeB2B Equipo de Desarrollo FACeB2B Versión 1.0 Esta página se ha dejado vacía a propósito Índice de contenidos Capítulo 1 Introducción..........................................

Más detalles

Punto 3 Protocolo HTTP. Juan Luis Cano

Punto 3 Protocolo HTTP. Juan Luis Cano Punto 3 Protocolo HTTP Juan Luis Cano Hypertext Transfer Protocol o HTTP (en español protocolo de transferencia de hipertexto) es el protocolo usado en cada transacción de la World Wide Web. HTTP es un

Más detalles

ERASMUS Manual de Firma del Convenio Financiero

ERASMUS Manual de Firma del Convenio Financiero ERASMUS 2012-13 Manual de Firma del Convenio Financiero 1. Requisitos a. Sistema Operativo b. Firma Digital y Navegadores Soportados c. Java d. Problemas comunes con Navegadores Soportados 2. Acceso 3.

Más detalles

PHP 7 Desarrollar un sitio web dinámico e interactivo

PHP 7 Desarrollar un sitio web dinámico e interactivo Preámbulo 1. Objetivo del libro 11 2. Breve historia de PHP 12 3. Dónde conseguir PHP? 13 4. Convenciones de escritura 14 Introducción a PHP 1. Qué es PHP? 15 2. Estructura básica de una página PHP 17

Más detalles

INSTRUCCIONES PARA LA FIRMA ELECTRÓNICA. Pre requisitos para firmar electrónicamente:

INSTRUCCIONES PARA LA FIRMA ELECTRÓNICA. Pre requisitos para firmar electrónicamente: INSTRUCCIONES PARA LA FIRMA ELECTRÓNICA Una vez finalizado el proceso de adjuntar la documentación solicitada en la convocatoria, se deberá elevar la solicitud a definitiva mediante la opción Enviar al

Más detalles

Desarrollo y servicios web

Desarrollo y servicios web Desarrollo y servicios web Luisa Fernanda Rincón Pérez 2014-2 Sesión 4. 2 Qué haremos hoy? 3 1. GET/POST 2. Cookies 3.Sesiones Herramientas análisis HTTP Firebug plug-in for Firefox A must have for Web

Más detalles

Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR

Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.8 COOKIES Y SESIONES www.docencia.taboadaleon.es IES San Sebastián Huelva pg1 Las cookies Son pequeños ficheros de texto que se

Más detalles

Servidor Web IIS en Windows Server 2016

Servidor Web IIS en Windows Server 2016 Servidor Web IIS en Windows Server 2016 Luigi Guarino 26/11/2017 luigiasir.wordpress.com Índice Introducción... 3 Qué es un servidor web?... 3 Dónde usamos servidores web?... 3 HTTP, y eso es...?... 3

Más detalles

Requisitos Técnicos y de Configuración Sistema de Notificación Electrónica

Requisitos Técnicos y de Configuración Sistema de Notificación Electrónica Requisitos Técnicos y de Configuración Sistema de Notificación Electrónica Índice 1. Compatibilidades con los navegadores... 3 2. Listado de certificados digitales admitidos... 4 2.1 Comprobar la entidad

Más detalles

Manual de configuración navegador Mozilla Firefox

Manual de configuración navegador Mozilla Firefox Manual de configuración navegador Mozilla Firefox Guía de configuración del navegador Mozilla Firefox para un correcto funcionamiento con la Banca electrónica de particulares ÍNDICE 0. Introducción 1.

Más detalles

buscador diacronico Documentation

buscador diacronico Documentation buscador diacronico Documentation Publicación 1.0 ProLNat@GE 07 de November de 2016 Índice general 1. Instalación 3 1.1. Prerequisitos............................................... 3 1.2. Dependencias...............................................

Más detalles

Desarrollo PHP con Webmatrix

Desarrollo PHP con Webmatrix Álvaro Gómez Giménez (UAM.NET) Desarrollo PHP con Webmatrix 25-11-2011 1 / 30 Desarrollo PHP con Webmatrix Álvaro Gómez Giménez UAM.NET 25-11-2011 Álvaro Gómez Giménez (UAM.NET) Desarrollo PHP con Webmatrix

Más detalles

Requisitos Técnicos y de Configuración Sistema de Notificación Electrónica

Requisitos Técnicos y de Configuración Sistema de Notificación Electrónica Requisitos Técnicos y de Configuración Sistema de Notificación Electrónica Índice 1. Compatibilidades con los navegadores... 3 2. Listado de certificados digitales admitidos... 4 2.1 Comprobar la entidad

Más detalles

Funciones de PHP. Contenido

Funciones de PHP. Contenido Funciones de PHP Daniel Morató Area de Ingeniería Telemática Departamento de Automática y Computación Universidad Pública de Navarra daniel.morato@unavarra.es Laboratorio de Interfaces de Redes http://www.tlm.unavarra.es/asignaturas/lir

Más detalles

Localizar direcciones en Google Maps con PHP

Localizar direcciones en Google Maps con PHP Localizar direcciones en Google Maps con Teléfono: 900 103 253 www.hostalia.com WHITEPAPERS: Localizar direcciones en Google Maps con Hoy en día es muy habitual que cualquier página web cuente con un mapa

Más detalles

PROGRAMACIÓN EN PHP. 1. Identificar las características y modalidad de programación bajo PHP.

PROGRAMACIÓN EN PHP. 1. Identificar las características y modalidad de programación bajo PHP. Duración: 60 horas FUNDAMENTACIÓN DEL CURSO PROGRAMACIÓN EN PHP El Lenguaje PHP o Hypertext PreProcessor, al igual que C y Perl maneja programación estructurada, lo que le permite a los programadores con

Más detalles

Aplicaciones Web. Aplicaciones Distribuidas

Aplicaciones Web. Aplicaciones Distribuidas Aplicaciones Web Aplicaciones Distribuidas Contenido La Web. Sitios Web vs. Aplicaciones Web. HTTP. HTML. Sesiones. Tecnologías facilitadoras. HTML Dinámico. JavaScript. 2 La Web Petición http://www.um.es/index.html

Más detalles

OneAPI Interface Ref Push SMS. 13 de mayo de 2016 v1.1

OneAPI Interface Ref Push SMS. 13 de mayo de 2016 v1.1 Ref. 16051301 - Push SMS. 13 de mayo de 2016 v1.1 Índice Página 1 Introducción 3 1.1 Changelog 3 2 Definición de OneAPI 4 2.1 OneAPI RESTFull Short Messaging Interface 4 2.2 Información necesaria 4 2.2

Más detalles

Instalación y verificación de la Tarjeta Criptográfica

Instalación y verificación de la Tarjeta Criptográfica Instalación y verificación de la Tarjeta Criptográfica Instalación y verificación de la Tarjeta Criptográfica Bienvenido! El acceso al sistema de LexNET, requiere estar en posesión de un certificado de

Más detalles

CONFIGURACIÓN DE FIRMA ELECTRÓNICA

CONFIGURACIÓN DE FIRMA ELECTRÓNICA CONFIGURACIÓN DE FIRMA ELECTRÓNICA Si necesita información adicional sobre este procedimiento, no dude en contactar: Centro de Atención a Usuarios Correo electrónico: oficinavirtual.dgsfp@mineco.es ÍNDICE

Más detalles

INSTALACIÓN Y VERIFICACIÓN DE LA TARJETA CRIPTOGRÁFICA

INSTALACIÓN Y VERIFICACIÓN DE LA TARJETA CRIPTOGRÁFICA INSTALACIÓN Y VERIFICACIÓN DE LA TARJETA CRIPTOGRÁFICA Bienvenido! El acceso al sistema de LexNET, requiere estar en posesión de un certificado de firma electrónica en tarjeta. Para trabajar con la tarjeta,

Más detalles

Recomendaciones relativas al uso de AUTOFIRMA.

Recomendaciones relativas al uso de AUTOFIRMA. Recomendaciones relativas al uso de AUTOFIRMA. Si usted ha intentado firmar con su certificado digital un documento debe seguir las siguientes recomendaciones. A continuación se detallan algunas de las

Más detalles

Explotación del Componente Cliente

Explotación del Componente Cliente Explotación del Componente Cliente Referencia: AST-EFIRMA-ExplotacionComponenteCliente.doc Autor: Sergio Loras Fecha de creación: 20/10/2008 Última actualización: 25/11/2008 Versión: v1.1 Clasificación:

Más detalles

Recomendaciones relativas al uso

Recomendaciones relativas al uso Recomendaciones relativas al uso de @Firma. Si usted ha intentado firmar con su certificado digital un documento a través de algunas de las aplicaciones de Eprinsa debe seguir las siguientes recomendaciones.

Más detalles

PRÁCTICA 6. Windows Server 2008-R2 RECURSOS COMPARTIDOS ASIGNACIÓN DE DERECHOS

PRÁCTICA 6. Windows Server 2008-R2 RECURSOS COMPARTIDOS ASIGNACIÓN DE DERECHOS PRÁCTICA 6. Windows Server 2008-R2 RECURSOS COMPARTIDOS ASIGNACIÓN DE DERECHOS 1. Contesta si es cierta la siguiente afirmación: Los recursos compartidos en una red con un dominio de Active Directory se

Más detalles

Requisitos técnicos para firmar con applets Java

Requisitos técnicos para firmar con applets Java Requisitos técnicos para firmar con applets Java Acciones necesarias para preparar mi equipo para realizar firmas electrónicas con applets Java Consejería de Fomento y Medio Ambiente Dirección General

Más detalles

Requisitos técnicos para firmar con AutoFirma

Requisitos técnicos para firmar con AutoFirma Requisitos técnicos para firmar con AutoFirma Acciones necesarias para preparar mi equipo para realizar firmas electrónicas con aplicación nativa AutoFirma Consejería de Fomento y Medio Ambiente Dirección

Más detalles

Sede electrónica. Requisitos de configuración del Applet de Firma

Sede electrónica. Requisitos de configuración del Applet de Firma Sede electrónica Requisitos de configuración del Applet de Firma Página 1 de 15 04/01/2012 Índice 1 Requisitos del Applet de Firma.... 3 2 Comprobación de la validez del certificado y de los procesos de

Más detalles

Firma de Aceptación / Renuncia de Plaza Erasmus

Firma de Aceptación / Renuncia de Plaza Erasmus Firma de Aceptación / Renuncia de Plaza Erasmus 1. Requisitos a. Sistema Operativo b. Firma Digital y Navegadores Soportados c. Java d. Problemas comunes con Navegadores Soportados 2. Acceso 3. Cumplimentación

Más detalles

Instalación Componente Cliente

Instalación Componente Cliente Instalación Componente Cliente Manual de usuario Referencia: Autor: Fecha de creación: 06/07/2009 Última actualización: 19/06/2012 Versión: v1.3 AST-EFIRMA- InstalacionComponenteCliente.doc Aragonesa de

Más detalles

Arquitectura de Redes 1: Práctica 1. Javier Ramos José Luis García Dorado Germán Retamosa

Arquitectura de Redes 1: Práctica 1. Javier Ramos José Luis García Dorado Germán Retamosa Arquitectura de Redes 1: Práctica 1 Javier Ramos José Luis García Dorado Germán Retamosa Inicio: 2 octubre (grupos L). Práctica 1 3 octubre (grupo M). Entrega: 29(L) / 30 (M) de octubre antes de las 23:55

Más detalles

Instalación de certificados SSL en navegadores del Usuario

Instalación de certificados SSL en navegadores del Usuario Instalación de certificados SSL en navegadores del Usuario Confidencialidad: lo definido en el presente documento, hace parte del sistema de información GIASS, está destinado al uso exclusivo de la Caja

Más detalles

Redes de área local: Aplicaciones y servicios WINDOWS

Redes de área local: Aplicaciones y servicios WINDOWS Redes de área local: Aplicaciones y servicios WINDOWS 13. Entidad Certificadora 1 Índice Definición de Servidor de Certificados... 3 Instalación del Servidor de Certificados... 3 2 Definición de Servidor

Más detalles

PHP y MySQL Domine el desarrollo de un sitio Web dinámico e interactivo (3ª edición)

PHP y MySQL Domine el desarrollo de un sitio Web dinámico e interactivo (3ª edición) Introducción 1. Objetivo de la obra 15 2. Breve historia de PHP y MySQL 16 2.1 PHP 16 2.2 MySQL 16 3. Dónde conseguir PHP y MySQL 17 4. Convenciones de escritura 18 4.1 PHP 18 4.2 MySQL 19 Introducción

Más detalles

SGR - CCS. Reconocimiento de la Autoridad de Certificación de TIREA (TIREA CA)

SGR - CCS. Reconocimiento de la Autoridad de Certificación de TIREA (TIREA CA) Tecnologías de la Información y Redes para las Entidades Aseguradoras S.A. Inscrita en el Registro Mercantil de Madrid, Tomo 13.262, Libro 0, Folio 1, Sección 8, Hoja M-214853, NIF ES A-81864498 SGR -

Más detalles

DELTA. Guía de Configuración Previa

DELTA. Guía de Configuración Previa Guía de Configuración Previa Versión 5.3 SEPTIEMBRE 2017 INDICE 1. INTRODUCCIÓN...3 2. REQUISITOS MINIMOS...4 3. CERTIFICADO DE USUARIO...5 4. JAVA...6 4.1. Excepciones de Sitios...7 4.2. Certificado de

Más detalles

XMLHTTPREQUEST AJAX: MÉTODOS OPEN, SEND, GETRESPONSEHEADER, SETREQUESTHEADER (CU01209F)

XMLHTTPREQUEST AJAX: MÉTODOS OPEN, SEND, GETRESPONSEHEADER, SETREQUESTHEADER (CU01209F) APRENDERAPROGRAMAR.COM XMLHTTPREQUEST AJAX: MÉTODOS OPEN, SEND, GETRESPONSEHEADER, SETREQUESTHEADER (CU01209F) Sección: Cursos Categoría: Tutorial básico del programador web: Ajax desde cero Fecha revisión:

Más detalles

Slack, WordPress y un poco más. Eric Zeidan

Slack, WordPress y un poco más. Eric Zeidan Slack, WordPress y un poco más Como integramos WordPress u otra aplicación a Slack? Lo primero que debemos hacer es abrir nuestro Slack, y haciendo click sobre nuestro Usuario nos aparecerá la opción de

Más detalles

API NewsletterSoft. IE-API Herramienta de Newsletter Página 1 de 14

API NewsletterSoft. IE-API Herramienta de Newsletter Página 1 de 14 IE-API-2010-01-21 Herramienta de Newsletter 21-01-2010 Página 1 de 14 API NewsletterSoft Las llamadas al API de NewsletterSoft se realizan mediante XML RPC, para poder utilizar el API debe disponerse de

Más detalles

Presentación de Solicitudes con Firma Electrónica en Mozilla Firefox

Presentación de Solicitudes con Firma Electrónica en Mozilla Firefox Presentación de Solicitudes con Firma Electrónica en Mozilla Firefox Versión: 1.1 Fecha: 16/10/2017 Índice. 1. Requisitos técnicos... 3 2. Comprobar validez del certificado y proceso de autenticación/

Más detalles

REA Registro de Empresas Acreditadas Guía de configuración previa

REA Registro de Empresas Acreditadas Guía de configuración previa REA Registro de Empresas Acreditadas Versión 6.1 Índice 1. Introducción...3 2. Requisitos Mínimos...4 3. Certificado de Servidor...5 4. Certificado de usuario...6 5. Java...7 5.1 Excepciones de sitios...8

Más detalles

PROGRAMACIÓN PÁGINAS WEB JAVASCRIPT Y PHP

PROGRAMACIÓN PÁGINAS WEB JAVASCRIPT Y PHP PROGRAMACIÓN PÁGINAS WEB JAVASCRIPT Y PHP OBJETIVOS Estudiar la programación de la parte cliente con JavaScript y la programación de la parte servidor con la tecnología PHP y el servidor de bases de datos

Más detalles

Preguntas frecuentes KWB Comfort Online Contenido

Preguntas frecuentes KWB Comfort Online Contenido Preguntas frecuentes KWB Comfort Online Contenido 1. Requisitos... 3 1.1. Quiero utilizar Comfort Online. Cuáles son los requisitos?... 3 1.1.1. Requisitos para las calderas con Regulación Comfort 4...

Más detalles

DAWeb práctica 11, día dos de mayo de 2018

DAWeb práctica 11, día dos de mayo de 2018 DAWeb práctica 11, día dos de mayo de 2018 Carrito de compra Posiblemente uno de los usos más comunes de las cookies de sesión es la capacidad de rastrear los elementos que los clientes pretenden comprar

Más detalles

Web Service: Consulta de Arribo de Ómnibus Manual de referencia

Web Service: Consulta de Arribo de Ómnibus Manual de referencia Web Service: Consulta de Arribo de Ómnibus Manual de referencia Versión API: 0.5 (beta) Última revisión: 27 de agosto de 2014 Carlos Gabriel Vergara Departamento de Sistemas Subsecretaría de Informática

Más detalles

Portal de disposición del certificado de la configuración ISE 2.0

Portal de disposición del certificado de la configuración ISE 2.0 Portal de disposición del certificado de la configuración ISE 2.0 Contenido Introducción prerrequisitos Requisitos Componentes Utilizados Antecedentes Limitaciones Configurar Verificación Genere el solo

Más detalles

Guía del Curso Certificación Profesional TIC en Programación de Páginas Web con PHP y Javascript

Guía del Curso Certificación Profesional TIC en Programación de Páginas Web con PHP y Javascript Guía del Curso Certificación Profesional TIC en Programación de Páginas Web con PHP y Javascript Modalidad de realización del curso: Titulación: A distancia y Online Diploma acreditativo con las horas

Más detalles

Instrucciones para la instalación de WebSigner en Mozilla Firefox

Instrucciones para la instalación de WebSigner en Mozilla Firefox Instrucciones para la instalación de WebSigner en Mozilla Firefox Estas instrucciones permiten instalar el componente de firma WebSigner en ordenadores con sistemas operativos Windows y con los navegadores

Más detalles

Solicitud de Certificados de servidor web

Solicitud de Certificados de servidor web Solicitud de Certificados de servidor web El procedimiento de solicitud de los distintos tipos de certificados que pueden ser expedidos por la Fábrica Nacional de Moneda y Timbre Real Casa de la Moneda

Más detalles

Requisitos técnicos para firmar con AutoFirma

Requisitos técnicos para firmar con AutoFirma Requisitos técnicos para firmar con AutoFirma Acciones necesarias para preparar mi equipo para realizar firmas electrónicas con aplicación nativa AutoFirma Consejería de Fomento y Medio Ambiente Dirección

Más detalles

COMUNICACIÓN ENTRE EL CLIENTE Y SERVIDOR SIN PHP Y CON PHP. INTÉRPRETE PHP Y GESTOR DE BASES DE DATOS (CU00804B)

COMUNICACIÓN ENTRE EL CLIENTE Y SERVIDOR SIN PHP Y CON PHP. INTÉRPRETE PHP Y GESTOR DE BASES DE DATOS (CU00804B) APRENDERAPROGRAMAR.COM COMUNICACIÓN ENTRE EL CLIENTE Y SERVIDOR SIN PHP Y CON PHP. INTÉRPRETE PHP Y GESTOR DE BASES DE DATOS (CU00804B) Sección: Cursos Categoría: Tutorial básico del programador web: PHP

Más detalles

Curso de Programación en PHP Nivel I

Curso de Programación en PHP Nivel I Curso de Programación en PHP Nivel I Facultad de Ciencia y Tecnología Oro Verde - 2012 Capítulo 2: Programación Web Algo de HTML Definición de Formularios Componentes de los Formularios Métodos de Envío

Más detalles

Sesiones en PHP. Área de Ingeniería Telemática

Sesiones en PHP. Área de Ingeniería Telemática Sesiones en PHP Contenido Estado de la conexión con el navegador Cookies Sesiones Sesiones en PHP 2 Estado de la conexión con el navegador Cuando el usuario solicita una página que es en verdad un PHP

Más detalles

SOLICITUD ELECTRÓNICA DE AYUDAS

SOLICITUD ELECTRÓNICA DE AYUDAS Sólo podrán presentar la solicitud aquellos usuarios identificados con un certificado electrónico aceptado por la Administración Pública. A excepción de personas físicas, sin representante legal, que quieran

Más detalles

una nueva página (recordar que en este curso no se ve como programar en el servidor) Todo los formularios que implemento y los que usted implementará

una nueva página (recordar que en este curso no se ve como programar en el servidor) Todo los formularios que implemento y los que usted implementará Formularios En Html Un formulario permite que el visitante al sitio cargue datos y sean enviados al servidor. Es el medio ideal para registrar comentarios del visitante sobre el sitio, solicitar productos,

Más detalles

Título. Problemas con apertura de aplicaciones Api0.ucam.edu Error SSL 61 / error certificado. Versión 1.2. Departamento de Ingeniería de Sistemas

Título. Problemas con apertura de aplicaciones Api0.ucam.edu Error SSL 61 / error certificado. Versión 1.2. Departamento de Ingeniería de Sistemas Título Problemas con apertura de aplicaciones Api0.ucam.edu Error SSL 61 / error certificado Versión 1.2 Departamento de Ingeniería de Sistemas Dirección TIC y Multimedia Viernes, 08 de enero 2016 Universidad

Más detalles

ITACA La aplicación de Gestión de Identidad

ITACA La aplicación de Gestión de Identidad ITACA La aplicación de Gestión de Identidad Índice La aplicación de Gestión de Identidad 3 Cambiar mis datos personales 3 Cambiar Contraseña 6 Administración de Usuarios 7 Creación de Usuario 10 Añadir

Más detalles

Firma Electrónica de Doumentos con AutoFirma

Firma Electrónica de Doumentos con AutoFirma MANUAL DE USUARIO Referencia: DYT-01 Versión: v1.0 CONTROL DE DOCUMENTACIÓN Versión Fecha Resumen de los cambios producidos 1.0 12-01-2017 Versión inicial Realizado por: Revisado por: Aprobado por: DSI.OFICINASEGURIDAD

Más detalles

Guía práctica PHP 6. (c) Francisco Charte Ojeda

Guía práctica PHP 6. (c) Francisco Charte Ojeda Guía práctica PHP 6 Agradecimientos Sobre el autor (c) Francisco Charte Ojeda Introducción Páginas de servidor PHP Creación de páginas PHP Cómo usar este libro Convenciones tipográficas 1. Instalación

Más detalles

Implementación del servicio de envío masivo de mensajes SMS HTTP/s API -

Implementación del servicio de envío masivo de mensajes SMS HTTP/s API - Implementación del servicio de envío masivo de mensajes SMS HTTP/s API - Versión: 3.3 Fecha: Uso Público Descripción: funcionamiento del servicio de SMS PUSH 1. DESCRIPCIÓN Mediante este sistema se consigue

Más detalles

Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor

Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor Unidad Didáctica 2 Programación de documentos web utilizando lenguajes de script de servidor 2.7 FICHEROS www.docencia.taboadaleon.es 1 Ficheros o Archivos Un archivo o fichero informático es un conjunto

Más detalles

REA Registro de Empresas Acreditadas en el Sector de la Construcción Guía de configuración previa

REA Registro de Empresas Acreditadas en el Sector de la Construcción Guía de configuración previa REA Registro de Empresas Acreditadas en el Sector de la Construcción Septiembre 2018 - Versión 8.2 Índice 1. IDENTIFICACIÓN Y FIRMA ELECTRÓNICA... 3 2. AUTOFIRM@... 5 2.1 Instalación de Autofirm@... 5

Más detalles

Manual Configuración equipos para Firma Electrónica IGAPE

Manual Configuración equipos para Firma Electrónica IGAPE Manual Configuración equipos para Firma Electrónica IGAPE NOVIEMBRE DE 2017 1. OBJETIVO El presente documento detalla los pasos a realizar por los usuarios de cara a la configuración adecuada de los navegadores

Más detalles

Cisco recomienda que usted tiene conocimiento del proceso firmada y del certificado autofirmado.

Cisco recomienda que usted tiene conocimiento del proceso firmada y del certificado autofirmado. UCCE \ PCCE - Procedimiento para obtener y para cargar el del uno mismo del Servidor Windows firmado o los servidores del certificado del Certificate Authority (CA) 2008 Contenido Introducción prerrequisitos

Más detalles

índice 1.- INTRODUCCIÓN 2.- JAVASCRIPT 3.- FLASH 4.- CRIPTOGRAFÍA

índice 1.- INTRODUCCIÓN 2.- JAVASCRIPT 3.- FLASH 4.- CRIPTOGRAFÍA TALLER HACKING WEB índice 1.- INTRODUCCIÓN 2.- JAVASCRIPT 3.- FLASH 4.- CRIPTOGRAFÍA índice 1.- INTRODUCCIÓN 2.- JAVASCRIPT 3.- FLASH 4.- CRIPTOGRAFÍA INTRODUCCIÓN Necesidades: Conocimiento del protocolo

Más detalles

Funciones de PHP. Francisco José Naranjo Abad

Funciones de PHP. Francisco José Naranjo Abad Funciones de PHP Francisco José Naranjo Abad Area de Ingeniería Telemática Departamento de Automática y Computación Universidad Pública de Navarra franciscojose.naranjo@unavarra.es Laboratorio de Interfaces

Más detalles

INSTALACIÓN Y VERIFICACIÓN DE LA TARJETA CRIPTOGRÁFICA

INSTALACIÓN Y VERIFICACIÓN DE LA TARJETA CRIPTOGRÁFICA INSTALACIÓN Y VERIFICACIÓN DE LA TARJETA CRIPTOGRÁFICA Bienvenido! El acceso al sistema de LexNET, requiere estar en posesión de un certificado de firma electrónica en tarjeta. Para trabajar con la tarjeta,

Más detalles

INTRODUCCIÓN A PHP PHP: LENGUAJE DE PROGRAMACIÓN

INTRODUCCIÓN A PHP PHP: LENGUAJE DE PROGRAMACIÓN A PHP QUÉ ES PHP La historia Que se puede hacer con PHP ORGANIZACIÓN Y CONCEPTOS El Modelo Cliente - Servidor Páginas Estáticas Páginas Dinámicas Servidor Web Apache POR QUÉ PHP Ventajas Desventajas Propuestas

Más detalles

OBTENCIÓN DEL CERTIFICADO

OBTENCIÓN DEL CERTIFICADO OBTENCIÓN DEL CERTIFICADO de la FNMT (Fábrica Nacional Moneda Timbre) Para el uso de la FIRMA ELECTRÓNICA. Este tutorial consta de los apartados: 1.- Introducción. 2.- Cómo obtener el Certificado de la

Más detalles