Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/10/2008, 10:17
Xematick
 
Fecha de Ingreso: octubre-2008
Mensajes: 180
Antigüedad: 16 años, 1 mes
Puntos: 1
La $_SESSION no me va.

El caso esque tengo un sistema de logeo que va como toca, menos por un detalle;
cuando pasamos con éxito el logeo tendria que mostrar en la página siguiente arriba a la izquierda el nombre del usuario logeado, y en vez de eso me muestra "desconocido". He dado miles de millones de vueltas a la cosa durante dias sin ningún resultado. Pongo los códigos a ver si alguien me puede hechar un cable.

Este es el archivo donde rellenamos los campos de las variables para luego ser enviadas al archivo control.php. Además recoge en la $_SESSION (por lo menos deberia no?) la variable escrita en el campo '$usuario'

index.php
Código PHP:
<?php 
// Inicializamos sesion 
session_start(); 
// Guardamos una variable 
$_SESSION['usuario'] = $usuario
?>
<html>
<head>
    <title>Autentificación PHP</title>
    <style type="text/css">
<!--
.Estilo1 {
    color: #CCCCCC;
    font-style: italic;
    font-size: 12px;
}
.Estilo2 {
    color: #FFFFFF;
    font-weight: bold;
    font-size: 12px;
}
.Estilo3 {
    color: #3399FF;
    font-weight: bold;
}
a:link {
    text-decoration: none;
}
a:visited {
    text-decoration: none;
}
a:hover {
    text-decoration: none;
}
a:active {
    text-decoration: none;
}
.Estilo5 {color: #666666; font-style: italic; font-size: 12px; }
.Estilo7 {color: #000000; font-weight: bold; font-size: 12px; }
-->
    </style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>
<h1>Autentificación PHP</h1>
<form action="control.php" method="POST">
<table align="left" width="225" cellspacing="2" cellpadding="2" border="0">
<tr>
    <td colspan="2" align="center" 
    <?if ($_GET["errorusuario"]=="si"){?>
        bgcolor=red><p><span style="color:ffffff"><b>Datos incorrectos</b></span></p>
      <p><span class="Estilo1">si no estas registrado ve a</span> <span class="Estilo2">registrarse</span> 
        <?}else{?>
      bgcolor=#cccccc>Introduce tu clave de acceso</p>
      <p><span class="Estilo5">si no estas registrado ve a</span> <span class="Estilo7">registrarse</span> </p>      <?}?></td>
</tr>
<tr>
    <td align="right">Nick:</td>
    <td><input type="Text" name="usuario" size="8" maxlength="50"></td>
</tr>
<tr>
    <td align="right">Password:</td>
    <td><input type="password" name="contrasena" size="8" maxlength="50"></td>
</tr>
<tr>
    <td colspan="2" align="center"><input type="Submit" value="ENTRAR"></td>
</tr>
<tr>
  <td colspan="2" align="center"><span class="Estilo3"><a href="registro.php">Registrarse</a></span></td>
</tr>
</table>
</form>
</body>
</html>
El archivo control.php comprueba las variables en la base de datos para ver si hay coincidencias.

control.php
Código PHP:
<?  
//conecto con la base de datos  
$conn mysql_connect("localhost","usuario","contraseñarrebuscada");  
//selecciono la BBDD  
mysql_select_db("mibasededatos",$conn);  
 
//Sentencia SQL para buscar un usuario con esos datos  
$ssql "SELECT * FROM mitabla WHERE nombre_usuario='$usuario' and clave_usuario='$contrasena'";  
 
//Ejecuto la sentencia  
$rs mysql_query($ssql,$conn);  
 
//vemos si el usuario y contraseña es váildo  
//si la ejecución de la sentencia SQL nos da algún resultado  
//es que si que existe esa conbinación usuario/contraseña  
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: aplicacion.php");  
}else {  
    
//si no existe le mando otra vez a la portada  
    
header("Location: index.php?errorusuario=si");  
}  
mysql_free_result($rs);  
mysql_close($conn);  
?>
Y este archivo es donde vamos aparar si todo es correcto y donde tendria que poner el nombre del usuario que se acaba de logear y no 'desconocido' :
aplicacion.php
Código PHP:
<?include ("seguridad.php");?>
<?php 
// Inicializamos sesion 
session_start(); 
// Comprovamos si existe la variable
if ( isset ( $_SESSION['nombre'] ) ) {
 
// Si existe
 
echo $_SESSION['nombre'];
} else {
 
// Si no existe
 
echo 'desconocido';
}
?>
<html> 
<head>  
<title>Aplicación segura</title>  
</head>
<body>  
<h1>Si estás aquí es que te has autentificado</h1>  
<br>  
----  
<br>  
Aplicación segura  
<br>  
----  
<br>  
<br>  
<a href="salir.php">Salir</a>  
</body>  
</html>
Por favor, quien me puede localizar el fallo o decirme que código es el correcto? Estoy desesperado yaaaaa