Foros del Web » Programando para Internet » PHP »

Problemas con las Urls amigables y GET

Estas en el tema de Problemas con las Urls amigables y GET en el foro de PHP en Foros del Web. Estoy cambiando tods los enlaces de una web a unas urls amigables... Pero tengo un problema enorme, es que no me recogen las variables por ...
  #1 (permalink)  
Antiguo 03/12/2013, 11:46
 
Fecha de Ingreso: julio-2009
Mensajes: 111
Antigüedad: 14 años, 9 meses
Puntos: 0
Problemas con las Urls amigables y GET

Estoy cambiando tods los enlaces de una web a unas urls amigables...

Pero tengo un problema enorme, es que no me recogen las variables por GET... Me explico...

en mi archivos .htaccess tengo lo siguiente:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ $1.php
RewriteRule ^productos-detalle/(.*)/(.*)$ productos-detalle.php?titulo=$1&id=$2 [L,QSA]
</IfModule>"]



Vale hasta alli bien, en el documento productos.php tengo enlaces dinamicos, y los he cambiado por lo siguiente :
Código HTML:
Ver original
  1. <a class="tituloProd" href="productos-detalle/'.urls_amigables($url).'/'.$resP[$h]['id_proyecto'].'"> titulo </a>  (en esta le digo que vaya, a productos-detalle.php/valor1/valor2)

y el problema ( o eso parece, que no creo ) viene aqui, en mi archivo productos-detalle.php tengo lo siguiente...

Código PHP:
Ver original
  1. if(isset($_GET['titulo']) && isset($_GET['id'])){
  2.  
  3. echo "entro";
  4.  
  5. $id=sanitize($_GET['id'],INT);
  6. $titulo=sanitize($_GET['titulo'], SQL+HTML);
  7. }else{
  8. echo "nada";
  9. }

Si alguien me podria ayudar, llevo ya unas cuantas horas buscando a ver que puede fallar :S

Gracias por adelantado!

EDIT:

He probado poniedo este enlace (productos-detalle/?titulo=loque-sea&id=7) y si que me funciona... no se donde esta el fallo :(

Última edición por Yurisimo; 03/12/2013 a las 12:03 Razón: mas informacion...
  #2 (permalink)  
Antiguo 03/12/2013, 16:28
 
Fecha de Ingreso: julio-2009
Mensajes: 111
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problemas con las Urls amigables y GET

A ver si a alguien se le ocurre algo, llevo muchas horas dandole vueltas y no lo consigo solucionar... el problema tiene que estar en el .htaccess... porq luego las variables que paso por GET no me las devuelve o no las puedo recoger en mi documento detalle-productos.php
  #3 (permalink)  
Antiguo 03/12/2013, 16:42
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: Problemas con las Urls amigables y GET

puedes hacer un var dump de los parametros GET para ver que parametros estan pasando cuando accedes por la url amigable y asi saber cual es el que esta fallando.

Código PHP:
Ver original
  1. <?php print_r($_GET); ?>
  #4 (permalink)  
Antiguo 03/12/2013, 16:59
 
Fecha de Ingreso: julio-2009
Mensajes: 111
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problemas con las Urls amigables y GET

Directamente, no recibo ningun valor por ninguna de las dos variables, me sale un Array(); vacio...
  #5 (permalink)  
Antiguo 03/12/2013, 17:02
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: Problemas con las Urls amigables y GET

Intenta simplificando tu .htaccess

RewriteEngine On
RewriteRule ^productos-detalle/(.+)/(+.) productos-detalle.php?titulo=$1&id=$2

Así lo uso yo y me funciona perfecto
  #6 (permalink)  
Antiguo 03/12/2013, 17:22
 
Fecha de Ingreso: julio-2009
Mensajes: 111
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problemas con las Urls amigables y GET

He intentado simplificarlo, pero me tira un error interno...

Lo que creo que esta haciendo mal, es mandarme las variables por GET , por eso no las reconoce y no puede entrar en el condicional :

Código PHP:
Ver original
  1. if(isset($_GET['titulo']) && isset($_GET['id'])){
  2.  
  3. echo "entro";
  4.  
  5. $id=sanitize($_GET['id'],INT);
  6. $titulo=sanitize($_GET['titulo'], SQL+HTML);
  7. }else{
  8. echo "nada";
  9. }

y no se porque... me estoy desesperando...
  #7 (permalink)  
Antiguo 03/12/2013, 17:55
 
Fecha de Ingreso: julio-2009
Mensajes: 111
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problemas con las Urls amigables y GET

La unica solucion que se me ocurre es usar un echo $_SERVER["REQUEST_URI"]; en mi documento detalle-productos, cortar la cadena y sacar la id, luego con esa id sacar la informacion que necesito de la base de datos...

Ejemplo:
productos-detalle/crema-corporal/18
Cortaria el 18 o lo que tenga almacenado alli, y sacar la informacion de la bbdd...

lo que pasa no se si seria muy correcto de utilizar?!?
  #8 (permalink)  
Antiguo 04/12/2013, 05:23
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Problemas con las Urls amigables y GET

Lo que más se usa es redirigir todo lo que no sean dicheros CSS, JS, o imágenes (u otros recursos) a index.php, y allí tener una clase enrutadora que procese la URL que llega, y sepa a qué PHP derivar para mostrar resultados.

Eso rompe la filosofía de "si la url es www.pagina.com/parte1/articulos.php, yo sé que hay un archivo articulos.html en una carpeta que se llama parte1.
Con enrutamiento, ni existe la carpeta parte1, ni probablemente exista el fichero llamado articulos.html.

Es un paso mas allá en convertir los enlaces a urls amigables, y el que se usa en el patrón MVC.

Etiquetas: amigables, html, sql, urls, variable
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 00:30.