Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: camera en 25 Marzo 2019, 00:48 am



Título: Imposible Iniciar sesión en login php
Publicado por: camera en 25 Marzo 2019, 00:48 am
Hola les comento que no he podido iniciar sesión en un sistema que recién subí a internet, no se si sea problema del servidor, ya que cuando estaba en local funciona muy bien puedo iniciar sesión sin problema, y a pesar que ingreso bien los datos, no me permite iniciar sesión, ya probé con diferentes versiones de php, la base de datos esta bien configurado no se aque se deba ese problema de no poder loguearse, les dejo parte del código del index y parte del código del otro modulo que redirige cuando se inicia sesión.. les dejo el link del sistema http://ralj.edu.mx/tutorias/ usuario: admin pass: 147258

Código
  1. <?php
  2.  
  3.    require("conexion/conexion.php");
  4.  
  5.    // Inicio de la sesión para su identificación
  6.  
  7.    session_start();
  8.  
  9.    if(isset($_SESSION['id_usuario'])){
  10.  
  11.        //en caso de que se detecte un inicio de sesión se redireccionará al menú del sistema
  12.  
  13.        header("location: extraescolares/home.php");
  14.  
  15.    }
  16.  
  17.  
  18.  
  19.    //modulo de inicio de sesión
  20.  
  21.    //en caso de que no se haya enviado nada con el metodo POST, no se realizará esta parte del código.
  22.  
  23.    if(!empty($_POST)){
  24.  
  25.        //se guardan los datos ingresados por el usuario en variables para su manipulación
  26.  
  27.        $usuario=mysqli_real_escape_string($conexion,$_POST['usuario']);
  28.  
  29.        $password=mysqli_real_escape_string($conexion,$_POST['password']);
  30.  
  31.        //$error='';
  32.  
  33.        //la contraseña se convierte en formato codificado sha1
  34.  
  35.        $sha1_pass=sha1($password);
  36.  
  37.        // se realiza la consulta a la BD con los datos ingresados
  38.  
  39.        $sql = "SELECT IdUsuario, IdTipo FROM Usuario WHERE Usuario = '$usuario' AND password='$sha1_pass'";
  40.  
  41.        //se obtienen los resultados de la consulta y cada uno de los campos
  42.  
  43.        $result = $conexion->query($sql);
  44.  
  45.        $rows=$result->num_rows;
  46.  
  47.        // si los campos no estan vacios...
  48.  
  49.        if($rows >0){
  50.  
  51.  
  52.  
  53.            //se guardan los datos de usuario en la sesión actual y se redirecciona al menú del sistema
  54.  
  55.            $row = $result->fetch_assoc();
  56.  
  57.            $_SESSION['id_usuario'] = $row['IdUsuario'];
  58.  
  59.            $_SESSION['tipo_usuario'] = $row['IdTipo'];
  60.  
  61.  
  62.  
  63.            header ("location: extraescolares/home.php");
  64.  
  65.        }else{
  66.  
  67.            //$error = "El nombre o contrase&ntilde;a son incorrectos";
  68.  
  69.            //si los datos corroborados en la BD no existen, se redireccionará a la página principal sin acceso
  70.  
  71.            echo"<script>alert('El nombre de usuario o contraseña son incorrectos'); window.location.href=\"index.php\"</script>";
  72.  
  73.        }
  74.  
  75.    }
  76.  
  77.  
  78.  
  79. ?>
  80.  
  81.  
  82.  
  83. este es el otro código de la pagina una vez que debería de haber iniciado sesión
  84.  
  85. <?php
  86.  
  87.    //llamada a la conexion con la BD y la sesión
  88.  
  89.    require'../conexion/conexion.php';
  90.  
  91.    require'../operaciones/fecha.php';//Llamada a la funcion fecha
  92.  
  93.    session_start();
  94.  
  95.  
  96.  
  97.    // si no reconoce el inicio de sesion redirecciona a la pagina principal index.php
  98.  
  99.    if(!isset($_SESSION["id_usuario"])){
  100.  
  101.        header("location: ../index.php");
  102.  
  103.    }//si reconoce la sesion continua con la pagina
  104.  
  105.  
  106.  
  107.    //guarda los datos del usuario que inició sesión
  108.  
  109.    $idusuario = mysqli_real_escape_string($conexion,$_SESSION['id_usuario']);
  110.  
  111.    $tipodeusuario=mysqli_real_escape_string($conexion,$_SESSION['tipo_usuario']);
  112.  
  113.  
  114.  
  115.    //TIempo de sesiòn del usuario
  116.  
  117.    //Variable que devuelve la hora actual
  118.  
  119.    $ahora = time();
  120.  
  121.  
  122.  
  123.    //realiza una consulta a la base de datos para devolver el tipo de usuario que ha iniciado sesión
  124.  
  125.    $sql = "SELECT * FROM usuario AS u WHERE u.IdUsuario='$idusuario'";
  126.  
  127.    $result=$conexion->query($sql);
  128.  
  129.    $row=$result->fetch_assoc();
  130.  
  131.    $user=utf8_decode(utf8_encode($row['Nombres'])).' '.utf8_decode(utf8_encode($row['ApellidoP']));
  132.  
  133.  
  134.  
  135.    //Consulta a la BD para arrojar los datos de los usuarios del sistema
  136.  
  137.    $consulta="SELECT u.Nombres, u.ApellidoP, u.ApellidoM, u.Usuario, u.Password, t.Tipo FROM usuario AS u INNER JOIN tipousuario AS t ON t.IdTipo=u.IdTipo";
  138.  
  139.    $resulta=$conexion->query($consulta);
  140.  
  141.    $contador=0;
  142.  
  143.  
  144.  
  145. ?>
  146.  


Título: Re: Imposible Iniciar sesión en login php
Publicado por: srWhiteSkull en 25 Marzo 2019, 02:52 am
Comprueba que la base de datos está bien engancha y pon un alert() con una consulta de la tabla de usuario al inicio de la página (para depurar, un select * from Usuario;). Y luego comprueba en el alert que las constraseñas están hasheadas.

PD No te olvides del punto y coma al final de la sentencia SQL.


Título: Re: Imposible Iniciar sesión en login php
Publicado por: camera en 25 Marzo 2019, 04:29 am
Hola, gracias por responder te puedo pasar la cuenta ftp del sistema para que lo chekes,


Título: Re: Imposible Iniciar sesión en login php
Publicado por: srWhiteSkull en 25 Marzo 2019, 04:52 am
Por mp


Título: Re: Imposible Iniciar sesión en login php
Publicado por: animanegra en 25 Marzo 2019, 11:41 am
Si te funcionaba en uno si y en otro no es probable que algun error, o warning este sacando datos antes del envío de la cabecera. Con lo que la sesion no se pueda enviar.

Echa un vistazo igual al codigo fuente de la pagina cuando la cargas y verifica que antes del session_start no estas sacando nada por pantalla, ni echos, ni warnings ni errores...