Foros del Web » Programando para Internet » PHP »

Pasar signos por URL

Estas en el tema de Pasar signos por URL en el foro de PHP en Foros del Web. Hola amigos Os quería solicitar ayuda para un tema que es de vital importancia para mi proyecto muchocine [punto] net La clave principal en MYSQL ...
  #1 (permalink)  
Antiguo 23/07/2009, 16:06
 
Fecha de Ingreso: abril-2009
Mensajes: 8
Antigüedad: 15 años
Puntos: 0
Pasar signos por URL

Hola amigos

Os quería solicitar ayuda para un tema que es de vital importancia para mi proyecto muchocine [punto] net

La clave principal en MYSQL de las críticas es el NOMBRE de la película, por lo que debo pasar el nombre de la película por la URL para componer ciertas páginas.

De esta forma aplico dos transformaciones al nombre de la película para pasarlo por la URL:

1.- Los espacios en blanco los convierto en un guiones.
2.- Los acentos, diéresis, eñes y demás los elimino.

Esto se consigue mediante estas dos funciones PHP:

1.- Funcion para convertir espacios en guiones

function guiones($critica)
{
$critica=str_replace(' ','-',$critica);
return $critica;
}

2.- Funcion para quitar todos los acentos, diéresis, y eñes:

function QuitarAcentos($s) {
$s = ereg_replace("[áàâãªä]","a",$s);
$s = ereg_replace("[ÁÀÂÃÄ]","A",$s);
$s = ereg_replace("[ÍÌÎÏ]","I",$s);
$s = ereg_replace("[íìîï]","i",$s);
$s = ereg_replace("[éèêë]","e",$s);
$s = ereg_replace("[ÉÈÊË]","E",$s);
$s = ereg_replace("[óòôõºö]","o",$s);
$s = ereg_replace("[ÓÒÔÕÖ]","O",$s);
$s = ereg_replace("[úùûü]","u",$s);
$s = ereg_replace("[ÚÙÛÜ]","U",$s);
$s = str_replace("ç","c",$s);
$s = str_replace("Ç","C",$s);
$s = str_replace("ñ","n",$s);
$s = str_replace("Ñ","N",$s);
return $s;
}

Por lo tanto, siempre que se hace un enlace a una peli hago lo siguiente:

<?=guiones(QuitarAcentos($peli);?>

Y con esta cadena resultante, busco directamente en MYSQL:

$mysql->query("SELECT * FROM $tabla_comments,$tabla_articulos where $tabla_articulos.id=$tabla_comments.ref and $tabla_articulos.peli = '".$cadena_resultante."'");

Hasta aquí todo perfecto ya que de esta forma la URL admite la mayoría de las películas. Sin embargo, hay determinados casos en los que estas dos medidas no son suficientes, por ejemplo, en estos casos:

a) Cuando el nombre de la película contiene guiones, como por ejemplo "Kun-fu-sion"
b) Cuando el nombre de la película contiene un punto o dos o tres ".", como por ejemplo "Expiación. Más allá de la pasión."
c) Cuando el nombre de la película contiene comillas " o ' como por ejemplo: "Driver's nightmare"
d) Cuando el nombre de la película contiene signos de interrogación o exclamacion: ¿? ¡! Por ejemplo "¿Qué he hecho yo para merecer esto?.

¿Alguien me puede decir alguna forma de evitar estos 4 casos? Si es posible modificar la función para que no tenga que cambiar todos los enlaces a mano yo y la comunidad de cine más cachonda de internet os lo agradeceriamos enormemente.

Mil gracias y un abrazo desde muchocine [punto] net!!!
  #2 (permalink)  
Antiguo 23/07/2009, 16:49
 
Fecha de Ingreso: mayo-2009
Mensajes: 62
Antigüedad: 14 años, 11 meses
Puntos: 2
Respuesta: Pasar signos por URL

Y si en lugar de guion (-) usas guion bajo (_)???. Usando esta misma lógica podrías usar nombres especiales en un array, por ejemplo:

_XexclamX_
_XinterroX_
_XcomillX_
_XpuntoX_


Ya sabrías que es una exclamacion, una interrogación, etc... Igual y podrían ser números para hacerlas más pequeñas, pero la idea es que es bastante complicado que te encuentres esa secuencia, no???

Saludos y espero que te sirva la idea. Por cierto, linda tu página.
  #3 (permalink)  
Antiguo 23/07/2009, 17:02
 
Fecha de Ingreso: abril-2009
Mensajes: 8
Antigüedad: 15 años
Puntos: 0
Respuesta: Pasar signos por URL

Gracias por la respuesta Ahdezm

No consigo entender la solución que propones.

De todas formas te cuento que el gran fallo, fue en un principio mezclar datos de peliculas y las criticas de la pelicula en la misma tabla.

Si cada peli tuviera un numero ID, esto sería tan simple como pasar el numero ID por la URL como hago con las fichas de las críticas. Sin embargo, la clave de la tabla es el nombre de la pelicula, y por eso determinados casos es muy dificil pasarlos por la URL...

La verdad que llevo un tiempo con este problema y todavía no le he encontrado una solución definitiva...
  #4 (permalink)  
Antiguo 24/07/2009, 02:04
 
Fecha de Ingreso: abril-2009
Mensajes: 8
Antigüedad: 15 años
Puntos: 0
Respuesta: Pasar signos por URL

Alguien que me pueda ayudar?

Gracias
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 19:39.