Ver Mensaje Individual
  #2  
Antiguo 04-12-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

El problema con la primera URL solucionado... o eso creo, de momento. Se trataba de cierta función utilizada para propagar variables "GET". Precisamente, esta función no la escribí yo de mi copete, sino que más bien la adapté de cierto código, como puede verse:

Código PHP:
/**
 * Propaga las variables contenidas en $_GET en la URL de la página que
 * llame a esta función. Utilizamos esta función básicamente para la pa-
 * ginación de enlaces.
 *
 * El algoritmo principal de esta función está tomado del Script Paginator
 * escrito por Jorge Pinedo Rosas (http://jpinedo.webcindario.com)
 *
 * @author dec
 * @since 0.0.1
 * @access private
 * @param string $menosEstaVar Nombre de la variable que no debe propagarse
 * @return string
 */
function PropagarVariblesGet($menosEstaVar '')
{
  
$qs '';
    if((
$menosEstaVar != '')
     && isset(
$_GET[$menosEstaVar]))
      unset(
$_GET[$menosEstaVar]);

  
$aPropagar array_keys($_GET);
  foreach(
$aPropagar as $varGet)
  {
       if(isset(
$GLOBALS[$varGet])) {
          
$qs.= $varGet."=".$GLOBALS[$varGet]."&";
      }
     elseif(isset(
$_REQUEST[$varGet])) {
         
$qs.= $varGet."=".$_REQUEST[$varGet]."&";
     }
    } 
// endfor

  
return $qs;

Pues bien. Escapando las variables que nos llegan conseguimos salvar el obstáculo puesto por la primera URL. Es decir, la función ha quedado así de momento:

Código PHP:
function PropagarVariblesGet($menosEstaVar '')
{
  global 
$bdatos;  // Nuevo

  
$qs '';
    if((
$menosEstaVar != '')
     && isset(
$_GET[$menosEstaVar]))
      unset(
$_GET[$menosEstaVar]);

  
$aPropagar array_keys($_GET);
  foreach(
$aPropagar as $varGet)
  {
      
$varGet $bdatos->Escapar($varGet); // Nuevo
       
if(isset($GLOBALS[$varGet])) {
          
$qs.= $varGet."=".$GLOBALS[$varGet]."&";
      }
     elseif(isset(
$_REQUEST[$varGet])) {
         
$qs.= $varGet."=".$_REQUEST[$varGet]."&";
     }
    } 
// endfor

  
return $qs;

Aún estoy con la segunda de las URLs... ¿qué os parece de todo esto? ¿Curioso cuando menos no?

Por cierto, el método "Escapar" de la clase "Bdatos" y es tal cual:

Código PHP:
    /**
     * Escapa una cadena para su inserción en la base de datos.
     *
     * Atención: este método no asegura la entrada del usuario, que es algo
     * que deberá hacer en todo caso por otros medios.
     *
   * @author dec
   * @since 0.0.1
   * @version 1.0
     * @param string $cadena Cadena a escapar.
     * @return string
     */
    
function Escapar($cadena) {
        return 
mysql_real_escape_string(stripslashes
         
(strip_tags($cadena)), $this->enlaceConexionBd);
    }
    
/* function */ 
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita