Foros del Web » Programando para Internet » PHP »

Duda rápida

Estas en el tema de Duda rápida en el foro de PHP en Foros del Web. Buenas a todos: Sé que la duda os parecerá una tontería y yo recuerdo que esto lo solía hacer si mayor problema pero ahora no ...
  #1 (permalink)  
Antiguo 01/09/2010, 03:46
 
Fecha de Ingreso: marzo-2010
Mensajes: 128
Antigüedad: 14 años
Puntos: 1
Duda rápida

Buenas a todos:

Sé que la duda os parecerá una tontería y yo recuerdo que esto lo solía hacer si mayor problema pero ahora no soy capaz.... me estoy oxidando antes de empezar jajaja... El tema es que tengo un listado de hoteles generado con PHP desde una base de datos y al hacer clic se abre un archivo "ficha.php". Hasta aquí bien. El problema es que yo le adjudico a la url de cada enlace el parámetro id con el nombre de cada hotel. El código sería algo así : <a href="ficha.php?id=$id"></a> Por un lado tengo el problema de que la id contiene espacios y éstos se reflejan en la url como %20 y no sé si esto afecta a la hora de extraer la variable y cotejarla con la base de datos. Y por otra parte y más importante, ¿cómo se extrae dicha variable de la url al pasarla?. Por lo que recuerdo esa variable se podía utilizar directamente, es decir, una vez que estoy en el archivo al cual le paso la variable, utilizarla tal cual con el nombre que le dí...

Agradezco cualquier aporte....
  #2 (permalink)  
Antiguo 01/09/2010, 04:01
 
Fecha de Ingreso: marzo-2010
Mensajes: 128
Antigüedad: 14 años
Puntos: 1
Respuesta: Duda rápida

SOLUCIONADO!!

Era tan absurda la duda que se ha caído por su propio peso... Mediante $id = $_REQUEST['id']; se extrae la variable con los espacios y todo perfecto.
  #3 (permalink)  
Antiguo 01/09/2010, 04:03
Avatar de angelAparicio  
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 307
Antigüedad: 14 años, 9 meses
Puntos: 22
Respuesta: Duda rápida

A ver, por partes:

Obtener la variable

Tienes que usar el array $_GET de esta manera:

$id = $_GET['id'];

Lo de obtener la variable directamente depende de la configuración de PHP y de la versión, pero se considera inseguro, así que lo normal es que, a menos que hayas trasteado con el php.ini no puedas usarla directamente. Vamos, que tienes que usar $_GET[]

Espacios en blanco

Puedes usar la funcion str_replace para sustituir los %20 por espacios en blanco
(http://php.net/manual/es/function.str-replace.php). Personalmente no me gusta tener espacios en blanco en las urls, yo haría esto:

echo '<a href="ficha.php?id=' . str_replace(' ', '_', $id) . '">Enlace</a>';

y ya en ficha.php:

$id = str_replace('_', ' ', $_GET['id']);

Consejo sobre el id

Parece que estás usando como id en la base de datos un campo de texto, por lo de los espacios en blanco. Evita hacer esto. Como id lo más recomendable es usar siempre un autonumérico. Te evitarás muchos problemas
__________________
Mis webs:
- Programador Web Autónomo
- Conciertos en Sevilla
  #4 (permalink)  
Antiguo 01/09/2010, 04:08
 
Fecha de Ingreso: marzo-2010
Mensajes: 128
Antigüedad: 14 años
Puntos: 1
Respuesta: Duda rápida

aham, un INT con AUTO_INCREMENT como PRIMARY KEY o algo así es lo que me propones no?y luego el nombre de usuario pues que sea el que tenga que ser... esque los clientes pueden acceder a un backend para modificar su info y demás...
  #5 (permalink)  
Antiguo 01/09/2010, 04:19
Avatar de angelAparicio  
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 307
Antigüedad: 14 años, 9 meses
Puntos: 22
Respuesta: Duda rápida

Si, la PK que sea siempre un entero con autoincremento que quede "oculta" a los clientes.
__________________
Mis webs:
- Programador Web Autónomo
- Conciertos en Sevilla

Etiquetas: Ninguno
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 16:39.