Ver Mensaje Individual
  #11 (permalink)  
Antiguo 13/07/2015, 20:28
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: Problemas con URLs Amigables y PHP

A ver...

Puedo equivocarme, pero me parece que no estas poniendo nada de tu parte y esperas que alguien te lo resuelva, o al menos esa es la impresión que me dan tus comentarios.

¿Probaste a debuggear la variable $_GET a ver que tiene?
Deberías, pero si no lo hiciste, yo lo hice por ti, eso es lo que te puse en el mensaje anterior, si entras a artista/aitor-rewind entonces $_GET["nombre"] es igual a aitor-rewind.

Por lo tanto, cuando quieres hacer WHERE nombre='$nombre' eso es siempre falso, ningun artista se llama aitor-rewind, en su lugar, posiblemente alla uno que se llame Aitor rewind.

En tu primer mensaje tu lo que pediste es una via para convertir "Aitor rewind" en "aitor-rewind" para poder crear un link y usarlo en la url, eso ya lo tienes resuelto, el problema que tienes ahora es que necesitas hacer el camino opuesto, de "aitor-rewind" tienes que ir a "Aitor rewind" y eso no es posible. ¿Porque? bueno, porque hay multitud de nombres posibles que respondan a "aitor-rewind", por nombrar algunos: "Aitor rewind", "AITOR REWIND" "AiToR ReWinD" "Aítór RÉwíND" "áitór rewínd", etc

Lo que hiciste se llama formalmente encriptacion de una via, es el mismo principio que siguen las funciones hash, en tu caso el resultado ademas es de longitud variable.

El problema que tienes se puede tratar de dos formas distintas dependiendo del estado del proyecto.

Caso 1: El proyecto esta en desarrollo y hay tiempo de modificarlo
Solucion: Agregar a la tabla articulos un campo nuevo llamado "slug" donde se guarda el nombre del artista pero en el formato que se veria la url, este campo se le puede permitir al usuario escribirlo a la hora de la carga o bien calcularlo automaticamente antes de guardar, es el que usas luego en las urls en vez del nombre.

Caso 2: El proyecto ya esta avanzado, tienes varios miles de registros y varias decenas de tablas relacionadas, necesitas implementar urls amigables pero la alternativa anterior implica refactorizar el 90% del sistema.
Solucion: Pensar a las urls amigables como un modulo independiente, puedes usar una clase como esta la cual desarrolle hace un año para una situacion de este tipo o cualquier otra similar.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios