Foros del Web » Programando para Internet » PHP »

Cómo crear una especie de "bio"

Estas en el tema de Cómo crear una especie de "bio" en el foro de PHP en Foros del Web. Hola gente Estoy interesado en crear una especie de biografía para cada usuario que se registre a un proyecto que estoy haciendo con PHP y ...
  #1 (permalink)  
Antiguo 18/05/2015, 02:16
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 6 años, 5 meses
Puntos: 145
Pregunta Cómo crear una especie de "bio"

Hola gente

Estoy interesado en crear una especie de biografía para cada usuario que se registre a un proyecto que estoy haciendo con PHP y MySQL.

Me gustaría recibir alguna orientación para obtener los datos de cada usuario según su nombre de usuario; por ejemplo: www.dominio.com/usuarios/nickname
¿Cómo se supone que he de comprobar que el enlace corresponde a 'nickname' y mostrar los datos (nombre, biografía, foto de perfil...) de ese usuario?

O sea, cada uno debería tener como su propia página (URL), o algo así, supongo.
¿Cómo genero esas páginas dinámicamente? O carpetas, donde pueda poner también las fotos que vaya subiendo el usuario.

Ando algo perdido, no he trabajado mucho con PHP ni mucho menos con bases de datos

jrasias d ante braso
__________________
¿Te sirvió la respuesta? Deja un +1
  #2 (permalink)  
Antiguo 18/05/2015, 03:10
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 7 años, 4 meses
Puntos: 38
Respuesta: Cómo crear una especie de "bio"

Hola , el concepto es sencillo , no tienes 1 url para cada usuario , lo que tienes es un php que recibe un get , recoge ese get , busca en la base de datos si el nombre existe devuelve y si no existe mandaras un 404.

Ejemplo: midomimio.ya/usuario.php?usuario=pepediaz .

Recoges el get ,buscas pepediaz y devuelves.

Despues esta el tema de la reescritura de urls para que tu dirección quede:

midominio.ya/pepediaz

Básicamente eso lo puedes hacer con apache , diciendole que todas las peticiones que lleguen, las
pase a un archivo concreto, usuarios.php o a un index mismo, para ello debes tener un módulo activado de apache que se llama mod_rewrite .

En la raiz del proyecto o la carpeta que quieras pegas un .htaccess que mas o menos sería como este:
Código Apache:
Ver original
  1. RewriteEngine on  
  2.  RewriteBase /
  3.  RewriteCond %{REQUEST_FILENAME} !-d  
  4.  RewriteCond %{REQUEST_FILENAME} !-f  
  5.  RewriteCond %{REQUEST_FILENAME} !-l  
  6.  RewriteRule ^(.+)$ usuarios.php?url=$1 [QSA,NC,L]

Y Voilaaa cada vez que yo haga midominio.ya/joaquin será lo mismo que midominio.ya?usuario=joaquin.

Esto es un concepto para que tengas un punto de partida...
De todas formas existen fmk de php que manejan la arquitectura rest y dependiendo de la envergadura sería buena idea usarlos.
Un saludo , suerte!!!!

Última edición por Djoaq; 18/05/2015 a las 04:02
  #3 (permalink)  
Antiguo 19/05/2015, 06:50
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 6 años, 5 meses
Puntos: 145
Respuesta: Cómo crear una especie de "bio"

Muchas gracias por las recomendaciones, las tendré en cuenta
__________________
¿Te sirvió la respuesta? Deja un +1
  #4 (permalink)  
Antiguo 20/05/2015, 16:12
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 6 años, 5 meses
Puntos: 145
Respuesta: Cómo crear una especie de "bio"

¿Alguien tiene algo más para aportar?
__________________
¿Te sirvió la respuesta? Deja un +1
  #5 (permalink)  
Antiguo 21/05/2015, 09:18
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 6 años, 5 meses
Puntos: 145
Busqueda Respuesta: Cómo crear una especie de "bio"

Estuve aplicando ese código en una prueba, pero no funciona como esperaba.

Hago lo siguiente:

.htaccess
Código Apache:
Ver original
  1. RewriteCond %{REQUEST_FILENAME} !-l
  2. RewriteRule ^(.+)$ obtener.php?url=$1 [QSA,NC,L]

obtener.php
Código PHP:
Ver original
  1. <?php
  2. $usuario = $_GET["usuario"];
  3. ?>

Código HTML:
Ver original
  1. <h1><?php echo $usuario ?></h1>
  2. </body>

Si yo pongo en la barra del navegador [mi dominio]/obtener.php?usuario=pepediaz me muestra el usuario ("pepediaz"), pero yo quiero que sea algo como [mi dominio]/pepediaz

Eso es lo que no termino de entender como se hace.
__________________
¿Te sirvió la respuesta? Deja un +1
  #6 (permalink)  
Antiguo 21/05/2015, 10:50
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 6 años, 5 meses
Puntos: 145
Respuesta: Cómo crear una especie de "bio"

Ok, ya conseguí la redirección, pero me muestra un "usuario.php", ¿por qué ese ".php"?

[mi dominio]/obtener/pepediaz

Me muestra: pepediaz.php

Código Apache:
Ver original
  1. RewriteCond %{REQUEST_FILENAME} !-l
  2. RewriteRule ^obtener/(.*)$ obtener.php?usuario=$1 [QSA]
__________________
¿Te sirvió la respuesta? Deja un +1
  #7 (permalink)  
Antiguo 21/05/2015, 12:00
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 7 años, 9 meses
Puntos: 319
Respuesta: Cómo crear una especie de "bio"

En vez de [QSA] las directivas son [PT,L].

Mas alla de eso, tu problema se resuelve con un ruteador.
Hay muchos, una version bastante desactualizada del que yo uso esta aca, uno que compartio @eleazan hace un tiempo esta aca y hay decenas de ellos dando vuelta por internet.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #8 (permalink)  
Antiguo 21/05/2015, 12:11
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 6 años, 5 meses
Puntos: 145
Respuesta: Cómo crear una especie de "bio"

Me sigue mostrando un .php cuando imprimo el GET.

Código Apache:
Ver original
  1. RewriteBase /
  2. RewriteEngine on
  3. RewriteCond %{REQUEST_FILENAME} !-d
  4. RewriteCond %{REQUEST_FILENAME}.html -f
  5. RewriteRule ^(.*)$ $1.html
  6. RewriteCond %{REQUEST_FILENAME} !-f
  7. RewriteRule ^([^\.]+)$ $1.php [NC,L]
  8. RewriteCond %{REQUEST_FILENAME} !-l
  9. RewriteRule ^usuarios/(.*)$ obtener.php?usuario=$1 [PT,L] #Esta es la línea en cuestión
  10. Options All -Indexes

Si por ejemplo hago:

Código HTML:
Ver original
  1. <title>Perfil de <?php echo $usuario ?></title>

Me muestra:

Perfil de pepediaz.php

__________________
¿Te sirvió la respuesta? Deja un +1
  #9 (permalink)  
Antiguo 21/05/2015, 14:36
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 6 años, 5 meses
Puntos: 145
Respuesta: Cómo crear una especie de "bio"

Lo he "solucionado" con esto:

Código PHP:
Ver original
  1. $usuario = $_GET["usuario"];
  2. $archivo = ".php";
  3. $usuario = str_replace($archivo, "", $usuario);

Y al entrar en [mi dominio]/obtener/pepediaz ya no me muestra pepediaz.php.

__________________
¿Te sirvió la respuesta? Deja un +1
  #10 (permalink)  
Antiguo 21/05/2015, 19:55
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 7 años, 9 meses
Puntos: 319
Respuesta: Cómo crear una especie de "bio"

El problema esta aca:
Código Apache:
Ver original
  1. RewriteRule ^([^\.]+)$ $1.php [NC,L]

Eso es lo que le esta agregando el .php después al nombre
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #11 (permalink)  
Antiguo 21/05/2015, 20:04
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 6 años, 5 meses
Puntos: 145
Respuesta: Cómo crear una especie de "bio"

Cita:
Iniciado por NSD Ver Mensaje
El problema esta aca:
Código Apache:
Ver original
  1. RewriteRule ^([^\.]+)$ $1.php [NC,L]

Eso es lo que le esta agregando el .php después al nombre
Entonces, ¿simplemente elimino esa línea? Tengo entendido que es para que se pueda acceder a, por ejemplo, archivo.php sin la necesidad de poner ".php".
__________________
¿Te sirvió la respuesta? Deja un +1
  #12 (permalink)  
Antiguo 21/05/2015, 22:04
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 7 años, 9 meses
Puntos: 319
Respuesta: Cómo crear una especie de "bio"

En efecto, eso es lo que parece hacer, pero tienes que entender que es lo que esta pasando:
peticion: /usuarios/pepediaz


RewriteEngine on # Se inicia el modo de reescritura.
RewriteCond %{REQUEST_FILENAME} !-d # Si usuarios/pepediaz no es un directorio TRUE
RewriteCond %{REQUEST_FILENAME}.html -f # Si usuarios/pepediaz.html existe FALSE
RewriteRule ^(.*)$ $1.html # Esto no se ejecuta
RewriteCond %{REQUEST_FILENAME} !-f # Si usuarios/pepediaz no es un archivo TRUE
RewriteRule ^([^\.]+)$ $1.php [NC,L] # Ahora el request vale usuarios/pepediaz.php
RewriteCond %{REQUEST_FILENAME} !-l # Si no es un enlace simbolico (link) TRUE
RewriteRule ^usuarios/(.*)$ obtener.php?usuario=$1 [PT,L] # Ahora el request vale obtener.php?usuario=pepediaz.php

Tambien puedes cambiar el orden y poner esa regla al final
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: mysql, usuarios
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 14:53.