Foros del Web » Creando para Internet » Diseño web »

Problema con entidades en URL y barra inclinada en Formularios

Estas en el tema de Problema con entidades en URL y barra inclinada en Formularios en el foro de Diseño web en Foros del Web. Hola, Estoy trabajando en una web de temática de adultos y tengo un problemas con las entidades. Como podéis comprobar si introducís la URL http://www.escortsindex.net ...
  #1 (permalink)  
Antiguo 30/12/2012, 12:53
 
Fecha de Ingreso: noviembre-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Mensaje Problema con entidades en URL y barra inclinada en Formularios

Hola,

Estoy trabajando en una web de temática de adultos y tengo un problemas con las entidades.

Como podéis comprobar si introducís la URL http://www.escortsindex.net en el validador de W3C da 23 errores relacionados con el uso de "&". Como solución me propone usar el código & dónde se genere una URL dinámica. Bien, en el código siempre tengo & dónde hay una URL.

El problema está, creo, en cómo tengo maquetada la web. El menú de navegación lo tengo en un archivo independiente (menu.php) al que llamo en todas las páginas mediante un require 'menu.php'; excepto en el index. Creo que al llamarlo me convierte los & en &. El menú en sí mismo hace referencia a contenido dinámico. Abajo incluyo el codigo del archivo menu.php

Código:
if($_tbl){
$countries = (array)$sql->get_rows('country.id,country.title_'.$_language.' as title, count('.$_tbl.'.id) as 

entries','country left join '.$_tbl.' on '.$_tbl.'.country_id=country.id',$_sql_expr.'group by country.id order by 

title');

$regions = array();
$sql->select('region.id,region.title_'.$_language.' as title,region.country_id, count('.$_tbl.'.id) as entries','region 

left join '.$_tbl.' on '.$_tbl.'.region_id=region.id',$_sql_expr.'group by region.id order by region.country_id,title');
while($data=$sql->fetch()){
    $regions[$data['country_id']][] = array('id'=>$data['id'],'title'=>$data['title'],'entries'=>$data['entries']);
}

$cities = array();
$sql->select('city.id,city.title_'.$_language.' as title,city.region_id, count('.$_tbl.'.id) as entries','city left join 

'.$_tbl.' on '.$_tbl.'.city_id=city.id',$_sql_expr.'group by city.id order by city.region_id,title');
while($data=$sql->fetch()){
    $cities[$data['region_id']][] = array('id'=>$data['id'],'title'=>$data['title'],'entries'=>$data['entries']);
}

$str = '<ul class="country _c_r_c">';
foreach($countries as $country_data){
     if(!$country_data['entries']) continue;
     $str .= '<li><a'.(($_country==$country_data['id'])?' class="active"':'').' href="?language='.

$language.'&amp;country='.$country_data['id'].$_serv_links.'">'.$country_data['title'].' ('.$country_data['entries'].')

</a>';
          if(isset($regions[$country_data['id']])){
              $str .= '<ul class="_c_r_c region'.(($_country==$country_data['id'])?' open':'').'">';
              foreach($regions[$country_data['id']] as $region_data){
                  if(!$region_data['entries']) continue;
                  $str .= '<li><a'.(($_region==$region_data['id'])?' class="active"':'').' href="?language='.

$language.'&amp;country='.$country_data['id'].'&amp;region='.$region_data['id'].$_serv_links.'">'.$region_data['title'].' 

('.$region_data['entries'].')</a>';

                      if(isset($cities[$region_data['id']])){
                          $str .= '<ul class="_c_r_c city'.(($_region==$region_data['id'])?' open':'').'">';
                          foreach($cities[$region_data['id']] as $city_data){
                              if(!$city_data['entries']) continue;
                              $str .= '<li><a'.(($_city==$city_data['id'])?' class="active"':'').' href="?language='.

$language.'&amp;country='.$country_data['id'].'&amp;region='.$region_data['id'].'&amp;city='.

$city_data['id'].$_serv_links.'">'.$city_data['title'].' ('.$city_data['entries'].')</a></li>';
                          }

                          $str .= '</ul>';
                      }

                  $str .= '</li>';
              }

              $str .= '</ul>';
          }

     $str .= '</li>';
}
$str .= '</ul>';
}
No sé cómo solucionas este problema y agradecería cualquier ayuda.

También tengo otro problema recoger URLs en la base de datos. Tengo la siguiente función:

Código:
  
function url($name){
      if(!isset($_GET[$name]))
          return '';
      return preg_replace('/[^a-z0-9._-]/','',$_GET[$name]);
  }
Con ella recogo Todas las URL siempre que no sean de segundo nivel. He intentado introducir "/" para recoge segundos y sucesivos niveles pero no lo consigo. Alguna sugerencia?

Muchas gracias.

Última edición por user69; 24/01/2013 a las 09:43

Etiquetas: barra, entidades
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:00.