Foros del Web » Programando para Internet » PHP »

Mostrar enlace descarga solo si registrado

Estas en el tema de Mostrar enlace descarga solo si registrado en el foro de PHP en Foros del Web. Hola a [email protected], Estoy creando una sección privada para usuarios registros en mi web y tengo unas cuandas dudas. La cuestión es que quiero que ...
  #1 (permalink)  
Antiguo 24/02/2012, 06:42
 
Fecha de Ingreso: mayo-2011
Ubicación: Valencia
Mensajes: 2
Antigüedad: 8 años, 2 meses
Puntos: 0
Mostrar enlace descarga solo si registrado

Hola a [email protected],

Estoy creando una sección privada para usuarios registros en mi web y tengo unas cuandas dudas.

La cuestión es que quiero que la web sea pública para todo el mundo y que solo se puedan descargar los archivos aquellos usuarios que esten registrados.

Esto es, una noticia de la web puede tener asociados 3 pdfs. Si el usuario no esta registrado verá la noticia i el titulo de los 3 pdfs asociados pero no podrá descargarlo . Si el usuario está registrado verá la misma noticia y los titulos de los pdf que esta vez si que tendrán el link de descarga.

Esto es lo que aparece en la mayoria de foros. La web que estoy desarrollando está en php y mysql y no es ningun CMS público, ya que la BD se diseño a medida cuando se hizo la primera versión de la web.

¿Como podría hacer esto? He visto el control de usuarios por sesiones pero no se como enfocarlo ya que en estos sistemas de control te manda a una web si estas registrado y a otra si no lo estas y lo que yo quiero es que se muestren o no los enlaces de descarga.

Espero que [email protected] de [email protected] me puedan echar una mano.
Muchas gracias
  #2 (permalink)  
Antiguo 24/02/2012, 06:55
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 11 años
Puntos: 1531
Respuesta: Mostrar enlace descarga solo si registrado

para eso necesitas indudablemente implementar sesiones (session) y usuarios en base de datos, no necesitas web's externas, puedes conseguir tutos de login PHP en la web, a no ser que uses la API de OpenID, twitter, Facebook, entre otros
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 24/02/2012, 08:46
Avatar de apaxito  
Fecha de Ingreso: febrero-2012
Ubicación: Sevilla
Mensajes: 47
Antigüedad: 7 años, 5 meses
Puntos: 10
Respuesta: Mostrar enlace descarga solo si registrado

Como bien dice maycolalvarez, necesitas variables de sesión para implementar lo que quieres, y es bastante sencillo de aplicar para lo que quieres.

Si tienes usuarios registrados en tu Web, tan solo tienes que modificar el código de la función de autentificación, de forma que si el usuario es correcto le asocies un valor a una variable bandera de sesión (Ej.: $_SESSION["registered"]=1). A continuación añade las funciones de eliminación de dicha variable de sesión cuando el usuario cierre la sesión (Ej.: unset($_SESSION["registered"])).

Para finalizar, en el apartado en el que quieras mostrar uno o más archivos si el usuario está registrado, deberás implementar una condición if para el supuesto de que esté registrado, o lo que es lo mismo, que dicha variable de sesión no sea 0, o sea 1.

Te aconsejo que esta comprobación la desarrolles en una función, como por ejemplo comprueba_autentificacion($user), y llames siempre a esta con la convección que decidas para el valor de retorno (Ej.: devuelve 1 para usuario registrado, 0 en otro caso) y así te será más sencillo si quieres aplicarlo en muchos sitios de tu Sitio Web (botones, banners, artículos, textos, archivos adjuntos, etc.).
__________________
Sígueme en el Blog que llevo con otros dos compañeros sobre PHP, HTML5, JavaScript, JQuery y noticias tecnológicas... http://www.inix.es/docevoltios

Etiquetas: enlace, mysql, registrado, registro, 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 18:32.