Foros del Web » Programando para Internet » PHP »

obtener datos de MYSQL mediante GET,problema con palabras.

Estas en el tema de obtener datos de MYSQL mediante GET,problema con palabras. en el foro de PHP en Foros del Web. Hola comunidad Buenas Noches. Espero que alguien pueda ayudarme porque llevo hace mas de 2 semanas tratando de solucionar y no puedo Les explico mi ...
  #1 (permalink)  
Antiguo 01/08/2015, 23:03
 
Fecha de Ingreso: julio-2015
Mensajes: 11
Antigüedad: 8 años, 9 meses
Puntos: 0
Pregunta obtener datos de MYSQL mediante GET,problema con palabras.

Hola comunidad Buenas Noches.

Espero que alguien pueda ayudarme porque llevo hace mas de 2 semanas tratando de solucionar y no puedo

Les explico mi problema...
Tengo una web en un localhost, y yo lo que quisiera es que la direccion del usuario sea esta ../perfil/ivofacundo (en mi caso) y no ../perfil/1 (yo soy el usuario con el id 1)..

le paso los codigos que estoy usando en est emomento asi ven cual seria el problema o si no lo hay que colocarle

.HTACCESS
Código:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /web2/
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^perfil/([a-zA-Z0-9-]*)  perfil.php?id=$1
RewriteRule ^post/([a-zA-Z0-9-]*)  post.php?id=$1
</IfModule>
El .htaccess me funciona a la perfección por ahora.

Este link tengo en que es el que redirecciona al perfil para obtener los datos mediante url
Código:
<a href='perfil/".$respuser["id"]."'>". $respuser["usuario"]."</a>
eso seria igual a:
Código:
<a href='perfil.php?id=".$respuser["id"]."'>". $respuser["usuario"]."</a>
$respuser["id"] es el id del usuario.
$respuser["usuario"] es el nombre de usuario.


y este esl el php dentro de PERFIL.PHP
  #2 (permalink)  
Antiguo 02/08/2015, 14:48
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: obtener datos de MYSQL mediante GET,problema con palabras.

Si quieres que en la url aparezca el nombre de usuario, envía el nombre de usuario y no la id:

Código:
// -------------------- Aquí estás enviando la id
<a href='perfil/".$respuser["id"]."'>". $respuser["usuario"]."</a>

// ---- Cámbiala por el nombre de usuario en minúsculas
<a href='perfil/". strtolower($respuser["usuario"]) ."'>". $respuser["usuario"]."</a>
Modifica .htaccess:

Código:
RewriteRule ^perfil/([a-zA-Z0-9-]*)  perfil.php?usuario=$1
Y en PHP:

Código PHP:
Ver original
  1. $usuario = (isset($_GET['usuario'])) ? $_GET['usuario'] : '';
  2.  
  3. // Debes hacer algunas validaciones y escapar la variable $usuario antes de ponerla en una consulta
  4. // eso ya depende de tus funciones y la librería que usas para conectar a base de datos
  5.  
  6. // La consulta quedaría así
  7. $consulta = "SELECT * FROM tabla_usuarios WHERE usuario = '$usuario'";
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 02/08/2015, 16:43
 
Fecha de Ingreso: julio-2015
Mensajes: 11
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: obtener datos de MYSQL mediante GET,problema con palabras.

Cita:
Iniciado por Triby Ver Mensaje
Si quieres que en la url aparezca el nombre de usuario, envía el nombre de usuario y no la id:

Código:
// -------------------- Aquí estás enviando la id
<a href='perfil/".$respuser["id"]."'>". $respuser["usuario"]."</a>

// ---- Cámbiala por el nombre de usuario en minúsculas
<a href='perfil/". strtolower($respuser["usuario"]) ."'>". $respuser["usuario"]."</a>
Modifica .htaccess:

Código:
RewriteRule ^perfil/([a-zA-Z0-9-]*)  perfil.php?usuario=$1
Y en PHP:

Código PHP:
Ver original
  1. $usuario = (isset($_GET['usuario'])) ? $_GET['usuario'] : '';
  2.  
  3. // Debes hacer algunas validaciones y escapar la variable $usuario antes de ponerla en una consulta
  4. // eso ya depende de tus funciones y la librería que usas para conectar a base de datos
  5.  
  6. // La consulta quedaría así
  7. $consulta = "SELECT * FROM tabla_usuarios WHERE usuario = '$usuario'";
Hola Triby gracias por tomarte el tiempo de responder, no pude poner el codigo PHP por un error de cloudfare no cargaba no entendia.

Tambien me olvide de decir yo habia probado en hacer lo que me estas diciendo de llamar al usuario y no a el ID. Reemplazaba todo en los codigos y cuando entraba por ejemplo a perfil/ivofacundo simplemente me decia que no sea ha encontrado el perfil ya que tengo una IF que evalua si existe el perfil, osea me decia eso no me tiraba error PHP ni MySQL
  #4 (permalink)  
Antiguo 02/08/2015, 18:24
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 6 meses
Puntos: 38
Respuesta: obtener datos de MYSQL mediante GET,problema con palabras.

Pon el código para ver ese if que dices, tal como te dice Triby es como deberías plantearlo, pero ten en cuenta que pasaria si tienes 2 usuarios con el mismo nombre, yo le concatenaria un uniqid y tendria 2 ref en bd el nombre y el uniqid tal que ..blabla/pepe7377d , o generas ...blabla/63dh4/pepe.
Suerte

Etiquetas: mysql
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:10.