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:
No sé cómo solucionas este problema y agradecería cualquier ayuda.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.'&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.'&country='.$country_data['id'].'&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.'&country='.$country_data['id'].'&region='.$region_data['id'].'&city='. $city_data['id'].$_serv_links.'">'.$city_data['title'].' ('.$city_data['entries'].')</a></li>'; } $str .= '</ul>'; } $str .= '</li>'; } $str .= '</ul>'; } $str .= '</li>'; } $str .= '</ul>'; }
También tengo otro problema recoger URLs en la base de datos. Tengo la siguiente función:
Código:
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?function url($name){ if(!isset($_GET[$name])) return ''; return preg_replace('/[^a-z0-9._-]/','',$_GET[$name]); }
Muchas gracias.