Foros del Web » Programando para Internet » PHP »

.htaccess-No muestra variables enviadas por GET

Estas en el tema de .htaccess-No muestra variables enviadas por GET en el foro de PHP en Foros del Web. Hola! Después de tanto sufrir por activar el mod_rewrite surge otro problema. No logro hacer que aparescan las variables que que se mandan por GET ...
  #1 (permalink)  
Antiguo 06/06/2011, 16:43
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
.htaccess-No muestra variables enviadas por GET

Hola!
Después de tanto sufrir por activar el mod_rewrite surge otro problema.
No logro hacer que aparescan las variables que que se mandan por GET a través de la URL en la página.

Verán, tengo un archivo dentro de la carpeta /portafolios/ que se llama portafolio.php, en él hay un simple código
Código PHP:
echo $_GET['nombre']; 
El valor de GET se le enviaría como portafolio.php?nombre=Juan
Necesito que al escribir http://localhost/portafolios/Juan tome el nombre de Juan como valor de la variable ?nombre= de la URL.
Lo anterior se hace con un .htaccess, según sé de esta forma.

Código:
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteRule AQUÍ NO SÉ CÓMO ESCRIBIR LA EXPRESIÓN 
¿Cómo puedo lograr lo anterior?
Gracias :)
  #2 (permalink)  
Antiguo 06/06/2011, 16:56
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: .htaccess-No muestra variables enviadas por GET

Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteCond %{REQUEST_FILENAME} !-f
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5. RewriteBase /
  6. RewriteRule ^portafolios/(.+)$ portafolios.php?id=$1 [L,QSA]

pero esto va en el foro de apache
  #3 (permalink)  
Antiguo 06/06/2011, 17:17
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: .htaccess-No muestra variables enviadas por GET

Disculpen, no supe exactamente dónde, ya que contiene PHP...

No me funcionó :( sólo aparece /portafolios/portafolio/ y si escribo /portafolios/juan marca 404
  #4 (permalink)  
Antiguo 06/06/2011, 17:47
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: .htaccess-No muestra variables enviadas por GET

pues que raro, mis webs funcionan con ese modrewrite todas.

debes tener un archivo llamado portafolios.php

RewriteRule ^portafolios/(.+)$ portafolios.php?id=$1 [L,QSA]

dice que si escribes tuweb.dom/portafolios/juan

llama al archivo portafolios.php y pasa por get juan.

Cita:
ese código no es para nada php
  #5 (permalink)  
Antiguo 06/06/2011, 18:45
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: .htaccess-No muestra variables enviadas por GET

Me refería a que funcionaba en conjunto a PHP, :p por eso dije que tenía algo qué ver con el foro, pero bueno, pido disculpas y si lo pueden mover sería un favor :)
----------------------
Aspi están mis cosas:


Mi .htaccess dentro de la carpeta portafolios
Código:
 
      Options +FollowSymLinks
      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteBase /
      RewriteRule ^portafolios/(.+)$ portafolios.php?id=$1 [L,QSA]
Nota: Intenté cambiar ?id=$1 por ?nombre=$1, pero no funcionó

Mi portafolio.php dentro de la carpeta portafolios
Código PHP:
<?php   echo $_GET['nombre'];   ?>
La URL a la que me dirijo:
Código:
http://localhost/portafolios/Juan
  #6 (permalink)  
Antiguo 06/06/2011, 18:48
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: .htaccess-No muestra variables enviadas por GET

la parte

RewriteBase /

es la carpeta en la que esta tu .htaccess

o sea que si esta en la raiz o sea

http://localhost/

debe ir como arriba

pero si va adentro de una carpeta debe tomar el nombre de esta

RewriteBase /portafolios

y tu url deberia ser

localhost/portafolios/portafolio/juan
  #7 (permalink)  
Antiguo 06/06/2011, 20:47
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: .htaccess-No muestra variables enviadas por GET

Ya intenté eso y obtengo el mismo resultado, sabes porqué
¿tiene que ver con el ?id=$1 en vez de ?user=$1?
Espero su respuesta. No puedo avanzar sin esto, gracias.
  #8 (permalink)  
Antiguo 06/06/2011, 20:51
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: .htaccess-No muestra variables enviadas por GET

$id o $user son el nombre del get,

por supuesto que si pasas que la variable es id

debes imprimir

echo $_GET['id'];

y si es user

echo $_GET['user'];
  #9 (permalink)  
Antiguo 06/06/2011, 20:55
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: .htaccess-No muestra variables enviadas por GET

Mmmm... Pues nada de nada :(
Incluso lo pasé a raíz para el RewriteBase, pero no.

Si cambio todo a raíz / ¿cómo quedaría el archivo de .htacces? Lo pregunto para ver si así funciona

Código:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /
RewriteRule ^portafolios/(.+)$ portafolio.php?user=$1 [L,QSA] 
  #10 (permalink)  
Antiguo 06/06/2011, 21:32
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: .htaccess-No muestra variables enviadas por GET

lo que pasa es que, por lo que veo en tu htacces no has entendido la regla.

esta regla

RewriteRule ^portafolios/(.+)$ portafolio.php?user=$1 [L,QSA]

dice así

RewriteRule -> reescribir segun la regla
^ -> si comienza con
portafolios -> la palabra portafolios
/ -> seguido de una diagonal que simula un directorio y divide la url
(.+) -> captura la palabra despues de la diagonal, como: juan, pedro, pepe
$ -> si termina con

portafolio.php -> te lleva a portafolio.php
?user= -> pasando el valor get user
$1 -> esto contendrá la variable (.+) de arriba.

conociendo esto.

tiene que salir poniendo una url asi:

localhost/portafolios/juan

debe ser lo mismo que

localhost/portafolio.php?user=juan

y también verifica que este activado modrewrite en tu php.ini
  #11 (permalink)  
Antiguo 06/06/2011, 22:21
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: .htaccess-No muestra variables enviadas por GET

Vale, entendía la regla pero ahora la comprendo mejor, gracias por la explicación.
No sé qué será, pero no funciona; tengo todo bien con el módulo de apache activo ( aparece en el phpinfo() ) e incluso se ve la página bien, pero no imprimie la varieble que se supone recibe por GET.

Bueno...mil gracias por tu paciencia, memoadian. Se agradece bastante.
Espero solucionar esto lo más pronto posible
  #12 (permalink)  
Antiguo 06/06/2011, 22:23
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: .htaccess-No muestra variables enviadas por GET

si a mi me pasó lo mismo cuando inicie con este dichoso htacces, es un dolor en el cu...
  #13 (permalink)  
Antiguo 07/06/2011, 18:53
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: .htaccess-No muestra variables enviadas por GET

Estuve probando por en la tarde para ver el error, y lo único que me di cuenta es que sí recibe la variable si pongo la dirección así:
http://localhost/portafolios/?user=Juan

No sé si esto sea de ayuda para solucionar el problema Saludos

Etiquetas: muestra, variables
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 23:48.