Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/01/2012, 11:33
viringas
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
problema con sesión php

hola a todos tengo un pequeño pero a la vez gran problema, veréis tengo mi pagina funcionando en modo local y todo iba bien hasta que la monte en un servidor ahí me di cuenta de que tal como tengo mi forma de iniciar y mantener sesión esta mal, y no se con mis conocimientos como puedo solucionarlo haber si alguien me aporta alguna idea, tengo el siguiente código:

lo mitico, un formulario en el q el usuario introduce su nombre de usuario y contraseña y lo envio a otra pagina en la q hago la validación, para este propósito use jquery para enviar datos de forma asíncrona tal que así:

Código Javascript:
Ver original
  1. $("#login_form").submit(function(event){
  2.                             event.preventDefault();
  3.  
  4.                             $.ajax({
  5.                                 type: "POST",
  6.                                 url: "login.php",
  7.                                 data: $("#login_form").serialize(),
  8.                                 dataType: 'json',
  9.                                 success: function(data){
  10.                                     if(data===false){
  11.                                         alert("datos incorrectos");
  12.                                     }else{
  13.                                        
  14.                                         $("#olvido").css({'display':'none'}); // una vez logueado desaparece "olvidaste tu contrseña"
  15.                                         $("#login").css({'display':'none'});
  16.                                         window.location.href = ".";
  17.                                     }  
  18.                                 }
  19.                             });
  20.                         });
  21.                        
  22.                         </script>

y el codigo de login es este:

Código PHP:
Ver original
  1. <?php
  2. session_start(); // mantenemos la sesion activa para trabajar siempre con el usuario registrado
  3. //$_SESSION['usu']; // guardamos la sesion del usuario
  4.  
  5. include("conectarse.php");
  6.     //cargamos en usuario y password el nombre de usuario y contraseña recogidos en el formulario de logeo
  7. $usuario = $_POST['username'];
  8. $password = $_POST['userpass'];
  9.     //echo($usuario);
  10.     //echo($password);
  11.    
  12.  
  13. $query = "SELECT pass FROM miembros WHERE usu ='".$usuario."'";
  14. $link=Conectarse();
  15. $result=mysql_query($query,$link);
  16. if($fila = mysql_fetch_array($result)) {
  17.     //echo $row["pass"];
  18.  
  19.     if($fila["pass"] == $password){
  20.         $_SESSION['actual'] = $usuario;
  21.         $salida = true;
  22.        
  23.        
  24.     }
  25.     else{
  26.         $salida = false;
  27.        
  28.     }
  29.  
  30. }
  31. else{
  32.         $salida = false;
  33. }
  34.  
  35. echo json_encode($salida);
  36.  
  37. mysql_free_result($result); // liberamos la memoria consumida
  38. mysql_close($link); // cerramos conexion
  39.  
  40. ?>
tal como lo tengo hasta ahora lo q hacia es en cada pagina php nueva ponía un session_start() y comprobaba kien era el usuario registrado en cada momento de esta manera:

Código PHP:
Ver original
  1. <?php
  2.    
  3.     $usuarioactual = $_SESSION['actual'];
  4.     ?>

y luego ya a partir de aquí lo q hacia es comprobar el valor de usuario actual, si se corresponde al admin pues muestra una serie de funciones sino no:

ahora mi pregunta es, session_start solo debería de ponerla en el index.php y luego en login comprobar si un usuario esta en el sistema, una vez se logra, utilizar session_id pero no se como puedo enviarle devuelta los dígitos que genera session id para cada usuario y que se mantenga en las diferentes paginas


alguien puede decirme si estoy en lo cierto o si se hace de otra manera?


gracias