Foros del Web » Programando para Internet » PHP »

como paso nombres por la url!

Estas en el tema de como paso nombres por la url! en el foro de PHP en Foros del Web. hola logre un mod_rewrite de esta manera http://localhost/z/perfil_remate/cod...der+Vendo.html paso por la url el nombre del producto pero me lo pasa imcompleto. El anuncio esta asi: ...
  #1 (permalink)  
Antiguo 19/04/2011, 21:34
 
Fecha de Ingreso: febrero-2011
Ubicación: cali, valle del cauca
Mensajes: 158
Antigüedad: 13 años, 2 meses
Puntos: 8
Pregunta como paso nombres por la url!

hola logre un mod_rewrite de esta manera


http://localhost/z/perfil_remate/cod...der+Vendo.html


paso por la url el nombre del producto pero me lo pasa imcompleto. El anuncio esta asi:

vendo psp portatil

y aparecec asi

http://localhost/z/perfil_remate/cod...der+Vendo.html

y quiero que aparesca asi:

$d["nom_remate"];

http://localhost/z/perfil_remate/cod..._portatil.html


alguna idea ? gracias.
  #2 (permalink)  
Antiguo 19/04/2011, 21:44
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: como paso nombres por la url!

eso son urls amigables?

lo ideal seria

http://localhost/z/perfil_remate/1/1..._portatil.html

y aun asi es larguisima.
  #3 (permalink)  
Antiguo 19/04/2011, 21:47
 
Fecha de Ingreso: febrero-2011
Ubicación: cali, valle del cauca
Mensajes: 158
Antigüedad: 13 años, 2 meses
Puntos: 8
Respuesta: como paso nombres por la url!

Cita:
Iniciado por memoadian Ver Mensaje
eso son urls amigables?

lo ideal seria

http://localhost/z/perfil_remate/1/1..._portatil.html

y aun asi es larguisima.

que me recomendarias?
  #4 (permalink)  
Antiguo 19/04/2011, 22:01
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: como paso nombres por la url!

Bueno primero que nada, revisar que variables realmente necesitas, hay veces que solo necesitas una o dos máximo, esos parametros suelen ser claves primarias para las consultas a mysql, si tiene suna tabla de anuncios, bastaria con asignarle un id a dicho anuncio, el id seria único, e irrepetible, y bastaria con tener esta url

http://miweb.dom/producto/23

para que el servidor lo interpretará como

http://miweb.dom//producto.php?id=23

a lo mejor quieres hacer una búsqueda, o hacerla más amigable

si el anuncio se llama vendo psp portatil, podrías ponerle un alias a la bd

y al escribir

http://miweb.dom/producto/23/vendo-psp-portatil.html

te buscaria con un buen método rewrite esto

http://miweb.dom//producto.php?id=23

o sea lo mismo.

veo que tomaste el tutorial de maestros del web

pero no es lo mejorcillo

por que en esta parte

cod=1
usuario=1
nom=vendo

¿realmente necesitas pasar todas esas variables por GET?, hay que optimizarlo.

podrías decirme por que pasas tantas variables y buscariamos la forma y te enseñaria como usar el mod rewrite :D
  #5 (permalink)  
Antiguo 19/04/2011, 22:04
 
Fecha de Ingreso: febrero-2011
Ubicación: cali, valle del cauca
Mensajes: 158
Antigüedad: 13 años, 2 meses
Puntos: 8
Respuesta: como paso nombres por la url!

pues las 1ra variable consulta el producto y la segunda el nombre del anunciante!
si me gustaria que fuese mas descriptiva mi url, mucho mas limpia, mas amigable
  #6 (permalink)  
Antiguo 19/04/2011, 22:18
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: como paso nombres por la url!

pues entonces vamos por partes, si usas esas variables para consultar en tu base de datos resulta que solo necesitas dos, la primera el nombre del producto o el id
y la segunda el nombre del anunciante de modo que siendo super optimizados podriamos usar la siguiente consulta, para facilitar esto podriamos decir que la base de datos es de anuncaiante y productos cada anunciante puede tener varios productos pero un producto solo puede ser de un anunciante,

o sea 1:N y 1:1

por lo que una consulta de este tipo serviría

Código MySQL:
Ver original
  1. SELECT * FROM productos WHERE producto_id = 12 AND anunciante = 23

que necesitariamos para esto?

solo dos variables

12 y 23

entonces con el mod rewrite podríamos hacer esto:
en el .htaccess

Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine On #Habilita el módulo RewriteEngine#
  3. RewriteCond %{REQUEST_FILENAME} !-f
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5. RewriteBase /
  6. RewriteRule ^productos/(.+)/(.+)$ productos.php?prod=$1&anun=$2 [L,QSA]

aqui lo importante es esta linea

Código Apache:
Ver original
  1. RewriteRule ^productos/(.+)/(.+)$ productos.php?prod=$1&anun=$2 [L,QSA]

lo que va entre (.+) es lo que capturas via get y $1 y $2 son las variables capturadas

ten cuidado que sean solo numeros, o letras minúsculas, y guiones medios o bajos.

escribiendo:

http://miweb.dom/productos/12/23

obtendrias el resultado esperado

en el siguiente post te mostraré como hacerlas más amigables.
  #7 (permalink)  
Antiguo 19/04/2011, 22:24
 
Fecha de Ingreso: febrero-2011
Ubicación: cali, valle del cauca
Mensajes: 158
Antigüedad: 13 años, 2 meses
Puntos: 8
Respuesta: como paso nombres por la url!

pues mira que el codigo de maestros del web pues si no es lo mejor, pero solucionaba mis problemas. Necesito que el cambie las urls de manera automaticamente
  #8 (permalink)  
Antiguo 19/04/2011, 22:28
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: como paso nombres por la url!

si queremos jugar un poco con el mod rewrite podriamos hacer lo siguiente

con esta regla

Código Apache:
Ver original
  1. RewriteRule ^producto/(.+)/(.+)-(.+).html$ producto.php?prod=$1&nom=$2&anun=$3 [L,QSA]

recuerda poner todo lo anterior

y trata de entender como funciona

podriamos poner algo asi:

http://miweb.dom/producto/12/vendo-psp-portatil-23.html

y te tomara como id del producto el 23 que es la ultima parte despues del guión, checa el orden.

esta parte vendo-psp-portatil es solo para hacer amigable la url, podrias ecribir cualquier cosa y no afectaria, aunque tambien podrías tomarlo como parametro

si haces lo anterior

comprobarias con este código en un archivo llamado producto.php lo que te digo

Código PHP:
<?php
echo $_GET['prod'];
echo 
"<br/>";
echo 
$_GET['anun'];
echo 
"<br/>";
echo 
$_GET['nom'];
?>
espero sea suficiente para que entiendas el uso de las urls amigables, son una herramienta superpoderosa, si las sabes usar bien.
  #9 (permalink)  
Antiguo 19/04/2011, 22:33
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: como paso nombres por la url!

Cita:
Iniciado por eresvey Ver Mensaje
pues mira que el codigo de maestros del web pues si no es lo mejor, pero solucionaba mis problemas. Necesito que el cambie las urls de manera automaticamente
bueno en relidad el cambio automático de las urls es un archivo php, que no tiene que ver con el .htaccess, y puede ser creado al gusto, con un poco de conocimiento, te dejo la info por si acaso pero tu sabrás que es lo mejor para ti , igual y a otro le sirve lo que he dejado, ya que a mi que planeo mis sitios desde un principio con urls amigables vale oro.

y seguro te servirá despues.

Etiquetas: nombres, url
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 03:50.