Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/06/2003, 09:12
dardd
 
Fecha de Ingreso: junio-2003
Mensajes: 102
Antigüedad: 20 años, 10 meses
Puntos: 0
comprobar variable sesion para autentificarse o no

Un saludo a todos los del foro, tengo una pagina index, en la cual para entrar tienes que registrarte,para comprobarlo te envia a autentificacion.php. Mi problema es que una vez alguien sabe el nombre de la pagina puede entrar sin registrarse, escribiendo toda la ruta asi que quiero aprovechar la variable de sesion creada en autentificacion para comprobarlo en cada una de las paginas que tengo. El problema es que no se como sacar el valor de la variable de sesion que se crea en autentificacion.php, alguien sabe como?
autentificacion.php:
<?
//Introducir tus datos de Mysql
$servidor = "localhost";
$usuario = "Pepe";
$password = "Hola";
$base_de_datos = "mydb";

//conecto con la base de datos
$conn = mysql_connect($servidor,$usuario,$password);

//selecciono la BBDD
mysql_select_db($base_de_datos,$conn);

//Sentencia SQL para buscar un usuario con esos datos
//nomusuario y contraseña son las variables que se pasan desde el form
$ssql = "SELECT * FROM usuarios WHERE nombre_usuario='$nombre_usuario' and clave_usuario='$clave_usuario'";

//Ejecuto la sentencia
$rs = mysql_query($ssql,$conn);
/*Si esa sentencia SELECT responde con algún registro encontrado, sabremos que existe un usuario
donde sus datos de autentificación corresponden perfectamente con los introducidos.
En ese caso podremos realizar las acciones encaminadas a permitir el acceso.
Por el contrario, si la sentencia SELECT no encuentra ningún registro, sabremos que no existe un usuario
con los datos de autentificación introducidos y por lo tanto, deberemos realizar las acciones encaminadas
a restringir el acceso.*/

if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
header ("Location: principal.php");
}else {
//si no existe le mando otra vez a la portada,no se puede poner nada antes de header como echo,...
header("Location: registrarse.php");
}
/*
Quita el echo de la linea 36. No se puede mandar nada al navegador para mostrar, ni HTML, ni echo, ni espacios
o retornos de carro. Como mucho otros header o setcookie. El redireccionamiento se hace sin mostrar nada en
el navegador. Si quieres mostrar un mensaje y despues redireccionar debes usar o javascript o el metatag HTML refresh.
*/
?>
He creado los scripts siguientes para probar:
-Iniciarautenti.php:
<?
session_start();
$_session['autentificado']="Si";
?><HTML>
<HEAD>
<TITLE>Form iniciar autentificacion </TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<form action="comprobarautenti.php" method="POST">
<input type=submit value="Comprobar autentificacion"></form>
</BODY>
</HTML>

-comprobarautenti.php:
<?
if ($_session['autentificado']) == "Si"
echo "Si que estas autentificado";
else
echo "No lo estas";?>
?>

Me sale el siguiente error:

Parse error: parse error, unexpected T_IS_EQUAL in C:\asp\php\session\comprobarautenti.php on line 65537