ANEXO II: ARCHIVOS CREADOS PARA IMPLEMENTAR LA WEB API EN EL SERVIDOR
|
|
- Joaquín Sevilla Juárez
- hace 5 años
- Vistas:
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.'¢ro_desc='.$centro_desc.'¢ro_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.'¢ro_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 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 detallesIntegració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 detallesIntegració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 detallesPUSH 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 detallesPasarela 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 detallesfactesol 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 detallesTELKIA. 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 detallesREA 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 detallesServicios 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 detallesGuia 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 detallesTEMA 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 detallesObjeto 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 detallesHEADERS 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 detallesDe 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 detallesProgramació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 detallesDocumentació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 detallesDocumentació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 detallesProcesamiento 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 detallesProcesamiento 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 detalleshipervinculos 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 detallesMT - 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 detallesDocumentació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 detallesPunto 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 detallesERASMUS 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 detallesPHP 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 detallesINSTRUCCIONES 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 detallesDesarrollo 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 detallesUnidad 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 detallesServidor 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 detallesRequisitos 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 detallesManual 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 detallesbuscador 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 detallesDesarrollo 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 detallesRequisitos 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 detallesFunciones 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 detallesLocalizar 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 detallesPROGRAMACIÓ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 detallesAplicaciones 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 detallesOneAPI 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 detallesInstalació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 detallesCONFIGURACIÓ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 detallesINSTALACIÓ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 detallesRecomendaciones 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 detallesExplotació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 detallesRecomendaciones 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 detallesPRÁ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 detallesRequisitos 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 detallesRequisitos 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 detallesSede 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 detallesFirma 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 detallesInstalació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 detallesArquitectura 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 detallesInstalació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 detallesRedes 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 detallesPHP 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 detallesSGR - 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 detallesDELTA. 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 detallesXMLHTTPREQUEST 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 detallesSlack, 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 detallesAPI 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 detallesPresentació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 detallesREA 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 detallesPROGRAMACIÓ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 detallesPreguntas 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 detallesDAWeb 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 detallesWeb 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 detallesPortal 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 detallesGuí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 detallesInstrucciones 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 detallesSolicitud 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 detallesRequisitos 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 detallesCOMUNICACIÓ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 detallesCurso 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 detallesSesiones 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 detallesSOLICITUD 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 detallesuna 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 detallesTí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 detallesITACA 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 detallesFirma 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 detallesGuí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 detallesImplementació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 detallesUnidad 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 detallesREA 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 detallesManual 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 detallesCisco 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
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 detallesFunciones 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 detallesINSTALACIÓ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 detallesINTRODUCCIÓ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 detallesOBTENCIÓ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