Foros del Web » Programando para Internet » PHP »

comprobar variable sesion para autentificarse o no

Estas en el tema de comprobar variable sesion para autentificarse o no en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 21/06/2003, 10:12
 
Fecha de Ingreso: junio-2003
Mensajes: 102
Antigüedad: 14 años, 6 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
  #2 (permalink)  
Antiguo 21/06/2003, 10:58
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 15 años
Puntos: 0
mira esto:

Código PHP:
-comprobarautenti.php:
<? 
if ($_session['autentificado']) == "Si"
echo "Si que estas autentificado";
else
echo 
"No lo estas";?>
?>
te falta un ) en el if quedaria asi:

Código PHP:
-comprobarautenti.php:
<? 
if ($_session['autentificado']) == "Si")
{
echo 
"Si que estas autentificado";
}
else{
echo 
"No lo estas";
}
?>
?>
__________________

la vida es bella cuando no es culera
  #3 (permalink)  
Antiguo 21/06/2003, 11:01
Abs
 
Fecha de Ingreso: enero-2003
Mensajes: 216
Antigüedad: 14 años, 10 meses
Puntos: 0
Hola,

Cambia esta línea:

Código PHP:
if ($_session['autentificado']) == "Si" 
por esta:
Código PHP:
if ($_SESSION['autentificado'] =="Si"
Ahhh!!! y en el último if, else: te falta abrir y cerrar {}
Cuida la sintaxis de php ;)

Saludos
  #4 (permalink)  
Antiguo 21/06/2003, 11:02
 
Fecha de Ingreso: junio-2003
Mensajes: 102
Antigüedad: 14 años, 6 meses
Puntos: 0
Gracias gente
  #5 (permalink)  
Antiguo 21/06/2003, 13:03
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 15 años
Puntos: 0
cierto debes cambiar $_session por $_SESSION
__________________

la vida es bella cuando no es culera
  #6 (permalink)  
Antiguo 21/06/2003, 13:09
 
Fecha de Ingreso: junio-2003
Mensajes: 102
Antigüedad: 14 años, 6 meses
Puntos: 0
Ya esta gracias a todos
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 02:07.