Foros del Web » Programando para Internet » PHP »

Sesion? o acceso solo si...

Estas en el tema de Sesion? o acceso solo si... en el foro de PHP en Foros del Web. Hola, como veran soy un novato total en PHP Todos los ejemplos de sesiones del foro estan creados para claves de usuarios, pero.... Ahora viene ...
  #1 (permalink)  
Antiguo 14/02/2005, 12:13
Avatar de elloco77  
Fecha de Ingreso: marzo-2003
Ubicación: Mar del Plata
Mensajes: 69
Antigüedad: 21 años, 7 meses
Puntos: 1
Pregunta Sesion? o acceso solo si...

Hola, como veran soy un novato total en PHP

Todos los ejemplos de sesiones del foro estan creados para claves de usuarios, pero....

Ahora viene el pedido: Tengo una pagina que es datos.php y en ella tengo muchos datos como por ejemplo, este sería el resultado que aparece en el explorador:

hola
chau
como estas?
Aca andamos
y vos?
Yo bien


Ahora, yo no quiero que cuando alguien ponga en el explorador datos.php le aparesca exactamente lo que mostre, si no tiene acceso.

Lo que necesito es que desde otro php por ejemplo estesoyyo.php tenga acceso para leer datos.php como puse antes sin necesidad de poner usuario y password.

Para que entiendan mi locura lo que quiero es que si ponen datos.php no esten autorizados para ver su contenido pero si ponen estesoyyo.php tengan acceso a los datos que pide el mismo archivo, que le dare un tratamiento en este mismo archivo.

Parece muy facil para el que sabe php, pero yo estoy perdidisimo.

Espero que me pueden poner un ejemplo claro para hacer esto, lo necesito hasta con la apertura de la etiqueta <?
Si si, ya les dije que soy un queso.

Bueno espero puedan ayudarme gracias.
__________________
no importa lo que hagas, siempre habra alguien que habla mal de ti
  #2 (permalink)  
Antiguo 14/02/2005, 14:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Necesites algún sistema de autentificación por cookies o sesiones para que hagas un "sólo" login en tu sistema (en alguna página del mismo) y de ahí continues con tu sesión abierta para el resto de scripts/Páginas que navegue tu usuario por tu sitio y que requieran autenticación.

Podrías usar o basarte en mi "Autentificator" para tu propósito:
http://php.cluster-web.com/autentificator

Pero antes de usarlo no está de más conocer algo sobre sesiones:
www.php.net/session

Un saludo,
  #3 (permalink)  
Antiguo 14/02/2005, 14:44
Avatar de elloco77  
Fecha de Ingreso: marzo-2003
Ubicación: Mar del Plata
Mensajes: 69
Antigüedad: 21 años, 7 meses
Puntos: 1
Claro, pero el problema principal que planteo es que no quiero que se necesite un login para acceder a estesoyyo.php.
Quiero que cualquier usuario pueda acceder a estesoyyo.php sin necesidad de pasar por un logeo.
O que el mismo lo traiga incorporado cuando se ejecuta esta página.
Me explico??????????

de todas formas gracias.
__________________
no importa lo que hagas, siempre habra alguien que habla mal de ti
  #4 (permalink)  
Antiguo 14/02/2005, 16:33
Avatar de elloco77  
Fecha de Ingreso: marzo-2003
Ubicación: Mar del Plata
Mensajes: 69
Antigüedad: 21 años, 7 meses
Puntos: 1
alguna otra idea por alli????
__________________
no importa lo que hagas, siempre habra alguien que habla mal de ti
  #5 (permalink)  
Antiguo 15/02/2005, 01:34
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Básicamente... quieres que tu página no se abra desde el explorador ó algunas otras sin permiso... Utiliza $_SERVER['HTTP_REFERER'] que te identifica la URL de donde se hizo la petición a tu página, combina ésta con algunos if's ó un switch ... dependiendo de lo que requieras y listo!.

Ejemplo para que la página no se abra si se llama directo desde el explorador:
Código PHP:
<?php
if($_SERVER['HTTP_REFERER']=="") {
echo 
"ACCESO DENEGADO";
}  else {
... 
contenido de la página
}
?>
... algo sencillo.. combina, haz pruebas... ó replantea tu pregunta si tampoco es eso..
Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 15/02/2005, 06:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Bueno ... entonces igualemente usa sesiones.

Creas en tu pagina1.php una variable de sesión y en pagina2.php validas su existencia. Si no existe en pagina2.php la variable de sesión es por qué no se ha pasado por "pagina1.php".

www.php.net/session

--------------

El tema de basarse en el "HTTP_REFERER" no es muy fiable (de hecho en mi "Autentificator" lo uso y ya he visto sus problemas). Dicha variable (su valor) no es entregado bajo muchas condiciones, por ejemplo ciertas conexiones que pasan por proxys, firewalls, .. abriendo una ventana en javascript, ciertos navegadores no lo entregan por defecto .. etc. En definitiva es un dato fácilmente "adulterable" y no fiable. HTTP_REFERER es parte de las cabeceras HTTP que se envian por parte de un "cliente" al conectar al servidor .. por eso son "alterables" fácilmente.

Un saludo,
  #7 (permalink)  
Antiguo 15/02/2005, 11:08
Avatar de elloco77  
Fecha de Ingreso: marzo-2003
Ubicación: Mar del Plata
Mensajes: 69
Antigüedad: 21 años, 7 meses
Puntos: 1
Cluster: supongo que lo que dices tiene que funcionar perfecto.
Estuve leyendo la página que pusistes pero estoy PERDIDO

Si en datos.php pongo

<?
session_start();
?>

Ya abre la session, como seria una variable se session sin abrir y como sería la validación en la otra pagina??

Espero que puedas darme una mano, no es por comodo, es que realmente debo comenzar desde cero a leer un manual de php, pero esto lo necesito ahora.

Gracias igualmente
__________________
no importa lo que hagas, siempre habra alguien que habla mal de ti
  #8 (permalink)  
Antiguo 15/02/2005, 11:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Bueno .. dice un dicho que "no puedes empezar la casa por el tejado" ..

De todas formas sería algo así ...

uno.php
Código PHP:
<?
// inicias el uso de sesiones
session_start();
$_SESSION['sesion']="da igual";
// etc página ...
// pasas a dos.php por un link o similar ..
y en dos.php

Código PHP:
<?
session_start
();
// validas la existencia de esa variable de sesión.
if (isset($_SESSION['sesion'])){
   echo 
"Llegas desde uno.php";
} else {
   echo 
"no se puede acceder directo aquí";
   
}
Si el SID (identificador de sesión) lo progagas correctamente (por defecto lo hará por cookies y tu navegador las acepta) .. el sistema funcionará. Puedes ver las FAQ's para más detalles sobre sesiones.

Un saludo,

Última edición por Cluster; 15/02/2005 a las 11:43
  #9 (permalink)  
Antiguo 15/02/2005, 11:47
Avatar de elloco77  
Fecha de Ingreso: marzo-2003
Ubicación: Mar del Plata
Mensajes: 69
Antigüedad: 21 años, 7 meses
Puntos: 1
JAJAJAJAJA tenes razon empese por la chimenea, no?

De todas formas te agradesco un monton

Me comprometo a empezar a estudiar Ya

Muchas gracias
__________________
no importa lo que hagas, siempre habra alguien que habla mal de ti
  #10 (permalink)  
Antiguo 15/02/2005, 12:13
Avatar de elloco77  
Fecha de Ingreso: marzo-2003
Ubicación: Mar del Plata
Mensajes: 69
Antigüedad: 21 años, 7 meses
Puntos: 1
Perdona Cluster pero si pongo uno.php en el explorador lo sigue mostrando igual de como empeze.

uno.php
<?
// inicias el uso de sesiones
session_start();
$_SESSION['sesion']="da igual";
// etc página ...
echo "accedistes a la informacion privada";
?>

dos.php
<?
session_start();
// validas la existencia de esa variable de sesión.
if (isset($_SESSION['sesion'])){
echo "<? include("uno.php"); ?>";
} else {
echo "no se puede acceder directo aquí";

}
?>



Avisame cuando te hinches las pelotas conmigo que no jodo más

Salute
__________________
no importa lo que hagas, siempre habra alguien que habla mal de ti
  #11 (permalink)  
Antiguo 15/02/2005, 16:58
Avatar de elloco77  
Fecha de Ingreso: marzo-2003
Ubicación: Mar del Plata
Mensajes: 69
Antigüedad: 21 años, 7 meses
Puntos: 1
alguna otra idea por alli, para lograr esto?
__________________
no importa lo que hagas, siempre habra alguien que habla mal de ti
  #12 (permalink)  
Antiguo 15/02/2005, 20:40
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Cita:
Iniciado por Cluster
HTTP_REFERER es parte de las cabeceras HTTP que se envian por parte de un "cliente" al conectar al servidor .. por eso son "alterables" fácilmente.
Perdona Cluster... dónde hay una lectura de esto??... Las cabeceras que envia HTTP....
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #13 (permalink)  
Antiguo 16/02/2005, 01:00
Avatar de Sliverale  
Fecha de Ingreso: diciembre-2003
Ubicación: Rosario, Argentina
Mensajes: 56
Antigüedad: 20 años, 11 meses
Puntos: 0
datos.php
Código PHP:
if ($valido != NULL) {
   
contenido

y al inicio de estesoyyo.php
Código PHP:
$valido 1
Entonces, al hacer un include de datos.php en cualquier página que tenga la variable $valido con X valor esta se va a mostrar, y si accede direcamente desde el navegador solo lo podrán visualizar mediante datos.php?valido=1.

Logicamente, lo mejor seria darle un valor a $valido y comprobar si existe.

datos.php
Código PHP:
if ($valido == "newells") {
   
contenido

y al inicio de estesoyyo.php
Código PHP:
$valido "newells"
De esa forma solo podrán acceder desde el navegador ingresando datos.php?valido=newells, y vos vas a poder mostrarla en cualquier página que tenga $valido = "newells" antes del include ("datos").

Saludos y suerte!
__________________

  #14 (permalink)  
Antiguo 16/02/2005, 08:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por jam1138
Perdona Cluster... dónde hay una lectura de esto??... Las cabeceras que envia HTTP....
Lo define el protocolo del HTTP/1.1 lo puedes ver en sus correspondientes RFC's:

Por ejemplo partiendo por:
http://www.faqs.org/rfcs/rfc2616.html

Un saludo,
  #15 (permalink)  
Antiguo 16/02/2005, 08:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por elloco77
Perdona Cluster pero si pongo uno.php en el explorador lo sigue mostrando igual de como empeze.

uno.php
<?
// inicias el uso de sesiones
session_start();
$_SESSION['sesion']="da igual";
// etc página ...
echo "accedistes a la informacion privada";
?>

dos.php
<?
session_start();
// validas la existencia de esa variable de sesión.
if (isset($_SESSION['sesion'])){
echo "<? include("uno.php"); ?>";
} else {
echo "no se puede acceder directo aquí";

}
?>



Avisame cuando te hinches las pelotas conmigo que no jodo más

Salute
No puedes usar el código tal cual lo ves ahí (o faltó algo que no indicas?) .. te falta pasar de uno.php a dos.php vía link que pongas en uno.php .. Hazlo e indica el código completo que usas.

Un saludo,
  #16 (permalink)  
Antiguo 17/02/2005, 13:53
Avatar de elloco77  
Fecha de Ingreso: marzo-2003
Ubicación: Mar del Plata
Mensajes: 69
Antigüedad: 21 años, 7 meses
Puntos: 1
Gracias Sliverale, lo resolvi como me dijistes.

_________________________
<?php
if ($valido != "clavedeseguridad") {
echo "esto es una pagina privada";
}
else {esto son los datos privados}
?>
_________________________

y en el include pongo esta direccion
loquesea.php?valido=clavedeseguridad

y funciona perfecto

Gracias
__________________
no importa lo que hagas, siempre habra alguien que habla mal de ti
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 13:06.