Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Proteger la pagina para que no se pueda acceder por URL

Estas en el tema de Proteger la pagina para que no se pueda acceder por URL en el foro de WordPress en Foros del Web. Hola, necesito saber como puedo hacer para proteger las paginas para que no se pueda acceder por URL, es decir, en mi sitio se va ...
  #1 (permalink)  
Antiguo 05/05/2015, 09:50
 
Fecha de Ingreso: mayo-2011
Mensajes: 282
Antigüedad: 12 años, 11 meses
Puntos: 3
Proteger la pagina para que no se pueda acceder por URL

Hola, necesito saber como puedo hacer para proteger las paginas para que no se pueda acceder por URL, es decir, en mi sitio se va a poder registrar y da de alta la gente, yen algunas paginas de mi sitio quiero poner contenido protegido, a estas les voy a poner una plantilla especifica para el contenido protegido, pero para que ningun usuario que no esta logeado pueda acceder poniendo la direccion en el buscador, que codigo tendria que poner??

Gracias y salu2

Última edición por boryi; 05/05/2015 a las 11:06
  #2 (permalink)  
Antiguo 05/05/2015, 15:44
Avatar de RBZ
RBZ
Moderador
 
Fecha de Ingreso: noviembre-2005
Ubicación: Sevilla España
Mensajes: 11.559
Antigüedad: 18 años, 5 meses
Puntos: 2053
Respuesta: Proteger la pagina para que no se pueda acceder por URL

Si es necesario registro para verlas el buscador no puede acceder y por tanto nunca podrá indexarlas.
__________________
Sevilla monumentos de Sevilla Fotos de la ciudad
ViajeV
  #3 (permalink)  
Antiguo 06/05/2015, 04:39
 
Fecha de Ingreso: mayo-2011
Mensajes: 282
Antigüedad: 12 años, 11 meses
Puntos: 3
Respuesta: Proteger la pagina para que no se pueda acceder por URL

Gracias RBZ, pero si alguien sabe la URL y la escribe directamente en el navegador, aunque no este registrado, quiero que le redirija al la pagina principal
  #4 (permalink)  
Antiguo 06/05/2015, 04:41
Avatar de franciscomarin  
Fecha de Ingreso: junio-2009
Ubicación: Terrassa, BCN, CAT
Mensajes: 2.414
Antigüedad: 14 años, 9 meses
Puntos: 327
Respuesta: Proteger la pagina para que no se pueda acceder por URL

Pero si alguien sabe la URL le pedirá el login no?

Si no es así tienes un serio planteamiento de base.
  #5 (permalink)  
Antiguo 06/05/2015, 07:24
 
Fecha de Ingreso: mayo-2011
Mensajes: 282
Antigüedad: 12 años, 11 meses
Puntos: 3
Respuesta: Proteger la pagina para que no se pueda acceder por URL

Mi idea es que a esas paginas protegidas solo pueda acceder el usuario logeado desde su perfil publico, donde tendria un lik a esa pagina protegida, pero si no esta logeado que no pueda acceder de ninguna manera
  #6 (permalink)  
Antiguo 06/05/2015, 10:56
Avatar de franciscomarin  
Fecha de Ingreso: junio-2009
Ubicación: Terrassa, BCN, CAT
Mensajes: 2.414
Antigüedad: 14 años, 9 meses
Puntos: 327
Respuesta: Proteger la pagina para que no se pueda acceder por URL

¿Entonces que más dará si alguien accede a esa URL? Te pedirá el login y listo.
  #7 (permalink)  
Antiguo 06/05/2015, 11:45
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Proteger la pagina para que no se pueda acceder por URL

creo que ese es el punto, que pida login al estilo de memberships

puedes hacerlo leyendo la url con PHP y comprobando si el usuario esta logeado

utiliza una funcion como
Código PHP:
Ver original
  1. function CheckPageUser(){
  2. // aqui tu codigo que valide la url y el login
  3. // tambien agrega una redireccion 301 en caso de no estar logeado para que no te de problemas de rastreo en google.
  4. }
  5. add_action('init','CheckPageUser',1);// esta linea hace que wordpress ejecute tu funcion previamente inicie la carga de tu pagina.
  #8 (permalink)  
Antiguo 07/05/2015, 02:59
 
Fecha de Ingreso: mayo-2011
Mensajes: 282
Antigüedad: 12 años, 11 meses
Puntos: 3
Respuesta: Proteger la pagina para que no se pueda acceder por URL

Gracias por tu respuesta Arturo, pero no entiendo lo que me quieres decir, no podria ser algo
como:

if (rol==suscriptor) {
header("Location: "pagina1.php");
}
else if(!isset(rol==suscriptor)){
header("Location: "index.php");
}

gracias
  #9 (permalink)  
Antiguo 07/05/2015, 09:45
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Proteger la pagina para que no se pueda acceder por URL

Pues es lo mismo que te dije, solo que si lo haces hasi seria muy general y aplicaria a todo el sitio no solo a las paginas X que tu quieres ocultar.

Vamos si quieres ocultar la pagina1 y entra a
dominio .com/contacto
dara lo mismo que si intenta entrar a
dominio .com/pagina1

Yo he intentado conseguir la ID de la pagina previamente a su carga pero no he tenido exito, asi que la opcion es usar $_SERVER para leer la URL y compararla con la URL que deseas proteger.

Si la URL coencide entonces compruebas la ID del usuario, ahorita me viene a la mente la funcion get_current_user_id() esta devuelve la ID del usuario en caso de estar logeado y false en caso de ser visitante.

Si lo quieres manejar por roles puedes usar
Código PHP:
Ver original
  1. $userData = get_user_by('id',get_current_user_id());
  2. $userData->roles; // este contiene un array con los roles que tiene el usuario, ya solo basta con comprobar que el rol deseado este en el array
  #10 (permalink)  
Antiguo 07/05/2015, 16:23
Avatar de zanguanga
Moderadora
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 1.686
Antigüedad: 14 años, 9 meses
Puntos: 429
Respuesta: Proteger la pagina para que no se pueda acceder por URL

Lo más sencillo poner esas páginas en modo "privado" en lugar de "público". Aunque alguien tenga la URL no podrá ver nada si no se loguea. Si necesitas bajar o personalizar los roles de quienes pueden ver o editar esas páginas (haz la prueba pero es posible que el suscriptor no pueda verlas) puedes usar el plugin members.
__________________
Mi blog personal | Mi G+

Etiquetas: plantilla, proteger, url
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 17:44.