= 2) $flag_GET = true; // separamos por & $partes = explode("&", $parametros); for($c1=0;$c1 8) $error = true; else if(count((array)$partes_url) <= 1) $flag_previo = true; // procesamos datos // idioma $datosIdioma = obtenDatosIdioma($parametro1); $id_i18n = $datosIdioma[0]; $abreviatura_idioma = $datosIdioma[1]; if($id_i18n == 0) $error_idioma = true; // validamos valores recibidos if(!empty($parametro2)) { $id_texto_extra = obtenIdTextoExtraPorCadena($parametro2); if($id_texto_extra == 0) $id_seccion = obtenIdSeccionPorCadena($parametro2); if(($id_texto_extra == 0) && ($id_seccion == 0)) { if($parametro2 == $_cadena_login) $flag_login = true; else if($parametro2 == $_cadena_logout) $flag_logout = true; } if(($id_texto_extra == 0) && ($id_seccion == 0) && (!$flag_login) && (!$flag_logout)) $error = true; } // parametro2 if(!empty($parametro3)) { $id_categoria_textos = obtenIdCategoriaTextosPorCadena($parametro3); if($id_categoria_textos == 0) $error = true; } // parametro3 if(!empty($parametro4)) { $id_texto = obtenIdTextoPorCadena($parametro4); if($id_texto == 0) $error = true; } // parametro4 if(!empty($parametro5)) { // si el texto enlaza con documentos, puede ser que en este parámetro se defina una categoría para los mismos $datosTexto = obtenDatosTexto($id_texto); $documentos = $datosTexto[7]; $informes = $datosTexto[8]; $noticias = $datosTexto[9]; $subtexto_de = $datosTexto[11]; if($documentos == 1) $id_categoria_documentos = obtenIdCategoriaDocumentosPorCadena($parametro5); else $id_categoria_documentos = 0; // enlaza con informes? Si es que si, puede estar definiéndose un archivo if($informes == 1) { $id_informe = obtenIdInformePorCadena($parametro5); if($id_informe == 0) { // página if(substr($parametro5, 0, strlen($_cadena_pagina)) != $_cadena_pagina) $pagina_comp = 0; else { $pagina_comp = str_replace($_cadena_pagina, "", $parametro5); if((!is_numeric($pagina_comp)) || ($pagina_comp < 0)) $pagina_comp = 0; } } } // informes else $id_informe = 0; if($noticias == 1) { // año para la hemeroteca $anho_hemeroteca = $parametro5; if((!is_numeric($anho_hemeroteca)) || ($anho_hemeroteca < 1970) || ($anho_hemeroteca > 2050)) $anho_hemeroteca = 0; // página if($anho_hemeroteca == 0) { if(substr($parametro5, 0, strlen($_cadena_pagina)) != $_cadena_pagina) $pagina_comp = 0; else { $pagina_comp = str_replace($_cadena_pagina, "", $parametro5); if((!is_numeric($pagina_comp)) || ($pagina_comp < 0)) $pagina_comp = 0; } } } // página de noticias // subtexto if(empty($subtexto_de)) $id_subtexto = obtenIdSubTextoPorCadena($parametro5); if(($id_categoria_documentos == 0) && ($id_informe == 0) && ($pagina_comp == 0) && ($anho_hemeroteca == 0) && ($id_subtexto == 0)) $error = true; else { if(!empty($pagina_comp)) $pagina = $pagina_comp; } } // parametro5 if(!empty($parametro6)) { // si el texto enlaza con documentos, puede ser que en este parámetro se defina uno if($documentos == 1) { $id_documento = obtenIdDocumentoPorCadena($parametro6); if($id_documento == 0) { // página if(substr($parametro6, 0, strlen($_cadena_pagina)) != $_cadena_pagina) $pagina_comp = 0; else { $pagina_comp = str_replace($_cadena_pagina, "", $parametro6); if((!is_numeric($pagina_comp)) || ($pagina_comp < 0)) $pagina_comp = 0; } } // documento no definido } // documentos else $id_documento = 0; if($noticias == 1) { // validamos el formato de la fecha: dd-mm-yyyy if(strlen($parametro6) != 10) $timestamp_noticia_comp = 0; else { $partes_fecha = explode("-", $parametro6); if(count((array)$partes_fecha) != 3) $timestamp_noticia_comp = 0; else { // validamos los datos de fecha recibidos $error_fecha_noticia = false; $dia_noticia = $partes_fecha[0]; $mes_noticia = $partes_fecha[1]; $ano_noticia = $partes_fecha[2]; if((!is_numeric($dia_noticia)) || ($dia_noticia < 1) || ($dia_noticia > 31)) $error_fecha_noticia = true; if((!is_numeric($mes_noticia)) || ($mes_noticia < 1) || ($mes_noticia > 12)) $error_fecha_noticia = true; if((!is_numeric($ano_noticia)) || ($ano_noticia < 1970) || ($ano_noticia > 2050)) $error_fecha_noticia = true; if(!$error_fecha_noticia) { if(!checkdate($mes_noticia, $dia_noticia, $ano_noticia)) $timestamp_noticia_comp = 0; else $timestamp_noticia_comp = mktime(00, 00, 00, $mes_noticia, $dia_noticia, $ano_noticia); } // valores OK else $timestamp_noticia_comp = 0; } // tres partes en la fecha } // longitud correcta } else $timestamp_noticia_comp = 0; if(($noticias == 1) && ($timestamp_noticia_comp == 0)) { // página if(substr($parametro6, 0, strlen($_cadena_pagina)) != $_cadena_pagina) $pagina_comp = 0; else { $pagina_comp = str_replace($_cadena_pagina, "", $parametro6); if((!is_numeric($pagina_comp)) || ($pagina_comp < 0)) $pagina_comp = 0; } } // sin fecha de noticia definida if(($id_documento == 0) && ($timestamp_noticia_comp == 0) && ($pagina_comp == 0)) $error = true; else { if(!empty($pagina_comp)) $pagina = $pagina_comp; if(!empty($timestamp_noticia_comp)) $timestamp_noticia = $timestamp_noticia_comp; } } // parametro6 // parametro7 if(!empty($parametro7)) { if($noticias == 1) { $id_noticia_comp = obtenIdNoticiaPorCadena($parametro7); if($id_noticia_comp == 0) { // validamos el formato de la fecha: dd-mm-yyyy if(strlen($parametro7) != 10) $timestamp_noticia_comp = 0; else { $partes_fecha = explode("-", $parametro7); if(count((array)$partes_fecha) != 3) $timestamp_noticia_comp = 0; else { // validamos los datos de fecha recibidos $error_fecha_noticia = false; $dia_noticia = $partes_fecha[0]; $mes_noticia = $partes_fecha[1]; $ano_noticia = $partes_fecha[2]; if((!is_numeric($dia_noticia)) || ($dia_noticia < 1) || ($dia_noticia > 31)) $error_fecha_noticia = true; if((!is_numeric($mes_noticia)) || ($mes_noticia < 1) || ($mes_noticia > 12)) $error_fecha_noticia = true; if((!is_numeric($ano_noticia)) || ($ano_noticia < 1970) || ($ano_noticia > 2050)) $error_fecha_noticia = true; if(!$error_fecha_noticia) { if(!checkdate($mes_noticia, $dia_noticia, $ano_noticia)) $timestamp_noticia_comp = 0; else $timestamp_noticia_comp = mktime(00, 00, 00, $mes_noticia, $dia_noticia, $ano_noticia); } // valores OK else $timestamp_noticia_comp = 0; } // tres partes en la fecha } // longitud correcta } // sin noticia definida } else $id_noticia_comp = 0; if(($id_noticia_comp == 0) && ($timestamp_noticia_comp == 0)) $error = true; else { if(!empty($id_noticia_comp)) $id_noticia = $id_noticia_comp; if(!empty($timestamp_noticia_comp)) $timestamp_noticia = $timestamp_noticia_comp; } } // parametro7 // parametro8 if(!empty($parametro8)) { if($noticias == 1) $id_noticia_comp = obtenIdNoticiaPorCadena($parametro8); else $id_noticia_comp = 0; if($id_noticia_comp == 0) $error = true; else { if(!empty($id_noticia_comp)) $id_noticia = $id_noticia_comp; } } // parametro7 if(($id_texto == 0) && (!$error)) $id_texto = obtenIdTexto($id_seccion, $id_categoria_textos); // asignaciones if(($error) || ($error_idioma)) { require("error.php"); exit; } if($flag_previo) { require("previo.php"); exit; } // portada if($flag_login) { require("include/inc.extra.php"); require("login.php"); exit; } // login if($flag_logout) { require("logout.php"); exit; } // logout if($id_documento != 0) { require("documento.php"); exit; } // documento if($id_informe != 0) { require("informe.php"); exit; } // informe if($id_noticia != 0) { require("noticia.php"); exit; } // noticia if($id_texto_extra != 0) { require("include/inc.extra.php"); require("extra.php"); exit; } // texto extra if($id_texto != 0) { require("texto.php"); exit; } // texto // Si llega aquí, es que no se ha entrado en ninguna de las comparaciones anteriores // echo "Ninguna comparación válida"; require("error.php"); exit; ?>