PHP - Inicio de Sesión

 
Vista:
sin imagen de perfil

Inicio de Sesión

Publicado por Juan (17 intervenciones) el 18/01/2018 05:55:48
Hola!!!

Estoy tratando de iniciar sesión pero mi código genera errores disque por el <header>, pero aun no doy con el error...

HTML:

1
2
3
4
5
6
7
8
9
10
11
12
13
<header id="cabecera">
 
 <div class="secion"><!--parte estatca del formulario donde se inicia secion-->
      <form action="index.php" method="post" name="inicioSesion" align="right"><!--Formulario para iniciar sesion-->
            <a href="" target="-blank" style="font-family: 'Montserrat Light', bold;font-size: 10px;text-shadow: 0px 0px 0px #aaa;  color:#686666;">Registrarse</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!--Enlace para registrarse-->
            <a href="recuperarContraseña.html" target="-blank" style="font-family: 'Montserrat Light', bold;font-size: 10px;text-shadow: 0px 0px 0px #aaa; color:#686666;">¿Has olvidado tu contraseña?</a>&nbsp;&nbsp;&nbsp;<!--Enlace para recordar contraseña -->
            <br><input id="redondo" type="text" placeholder="Correo Electrónico" name="email" required/><!-- campo para ingresar el email -->
            <input id="redondo" type="password" placeholder="Contraseña" name="contra" size="24" required/><!-- campo para ingresar la contraseña -->
            &nbsp;&nbsp;<input id="enviar" type="submit" src="boton entrar 1-01.png" width="45" height="35" onmouseover="sobre()" onmouseout="fuera()" name="boton"/><!-- Boton para entrar-->
 
      </form>
 </div>
</header>

PHP:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
$email=$_POST['email'];
$contra=$_POST['contra'];
 
 
 
if(ISSET($_POST['boton']))
{
 
    $conexion= mysqli_connect("localhost","root","","informacionplataforma"); //conexión a base de datos
 
    if($conexion->connect_errno){// verifica la conexion si es correcta o no
         echo "error";
    }
 
    $consulta="select*from usuario where email='".$email."' and contrasena='".$contra."'"; //consulta el correo y contraseña en la base de datos
 
    $datos= mysqli_query($conexion,$consulta); //guarda los datos de la variable conexion y la variable consulta
 
    if(($datos->num_rows)>0){ // verifica si la información es correcta para iniciar sesión
 
        session_start(); // en caso correcto inicia sesión 
 
        $_SESSION["usuario"]=$_POST["email"]; // el correo se guarda en una variable de sesión para redirigirlo a la otra pagina
 
        header("location:doctor.php"); // se redirige a la pagina asignada.
 
    }else{
 
         echo "<h4><p align='center'>Datos Incorrectos</p></h4>"; //en caso de que el correo y la contraseña sean incorrectas se imprime este aviso. 
 
    }
 
}
 
?>


Muchas Gracias por su Atención!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Inicio de Sesión

Publicado por xve (6935 intervenciones) el 18/01/2018 08:34:40
Hola Juan, pero exactamente que errores te da?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Inicio de Sesión

Publicado por Juan (17 intervenciones) el 18/01/2018 15:51:50
Hola, ¿Como estas?


Mira me ha dado varios errores, pero al corregirlos el ultimo que me ha dado es este:

"Warning: session_start(): Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\phpestilo\index.php:263) in C:\xampp\htdocs\phpestilo\index.php on line 286

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\phpestilo\index.php:263) in C:\xampp\htdocs\phpestilo\index.php on line 286

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\phpestilo\index.php:263) in C:\xampp\htdocs\phpestilo\index.php on line 290"



Y estuve probando el codigo php y la etiqueta header en un archivo aparte y me funciona, lo que estoy viendo es que hay una incompatibilidad con cierto codigo Javascript en la etiqueta <input> del botón enviar ya que ahí hay código Javascript...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Inicio de Sesión

Publicado por italo (150 intervenciones) el 18/01/2018 17:35:06
Hola,

los errores son generados por varios factores,

prueba primero que nada, abriendo la session luego del tag <?php

1
2
<?php
session_start();

luego del header, normalmente se utiliza un exit();

1
2
header('Location: doctor.php');
exit();


por otra parte, luego de que la consulta del select si es exitosa se usan los datos proveniente de la misma y ya no los del POST

1
$_SESSION["usuario"]=$_POST["email"]; // el correo se guarda en una variable de sesión para redirigirlo a la otra pagina

en este caso, tu $_SESSION["usuario"] debe de ser valorizado con el fetch de la select y ya no mas con el $_POST["email"].

1
2
3
$datos= mysqli_fetch_array($consulta);
 
$_SESSION["email"] = $datos["email"];


1
2
3
lo que estoy viendo es que hay una incompatibilidad con cierto codigo Javascript en la etiqueta <input> del botón enviar ya que ahí hay código Javascript...
 
<input id="enviar" type="submit" src="boton entrar 1-01.png" width="45" height="35" onmouseover="sobre()" onmouseout="fuera()" name="boton"/><!-- Boton para entrar-->

ahi, hay dos funcionas que no las has escrito (sobre() y fuera())

los atributos css, debes de trabajarlos con clases en css y no escribirlos en los tag.

1
2
3
4
5
6
7
8
9
10
11
<!-- Boton para entrar-->
<input id="enviar" type="submit" name="boton" class="miclass_enviar" onmouseover="sobre()" onmouseout="fuera()">
 
 
<style>
.miclass_enviar {
img:"1-01.png";
width:"45";
height:"35";
}
</style>

ve provando, si tienes dudas, escribes y tambien el codigo de tu problematica.

Salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Inicio de Sesión

Publicado por Juan (17 intervenciones) el 18/01/2018 18:53:39
Los errores que me genera son estos:

estos errores son del index.php :



Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\phpestilo\index.php:265) in C:\xampp\htdocs\phpestilo\index.php on line 288

Fatal error: Cannot use object of type mysqli_result as array in C:\xampp\htdocs\phpestilo\index.php on line 290



y la linea 288, es esta:
1
session_start(); // en caso correcto inicia sesión 

y la linea 290, es esta:
1
$_SESSION["usuario"]=$datos["email"];


index.php :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<header id="cabecera"><!-- la cabezera es el primer pedaso que es estatico-->
 
 <div class="secion"><!--parte estatca del formulario donde se inicia secion-->
      <form action="index.php" method="post" name="inicioSesion" align="right"><!--Formulario para iniciar sesion-->
                    <a href="" target="-blank" style="font-family: 'Montserrat Light', bold;font-size: 10px;text-shadow: 0px 0px 0px #aaa;  color:#686666;">Registrarse</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!--Enlace para registrarse--><!-- &nbsp; Este codigo deja espacio sin salto de linea-->
                    <a href="recuperarContraseña.html" target="-blank" style="font-family: 'Montserrat Light', bold;font-size: 10px;text-shadow: 0px 0px 0px #aaa; color:#686666;">¿Has olvidado tu contraseña?</a>&nbsp;&nbsp;&nbsp;<!-- &nbsp; Este codigo deja espacio sin salto de linea--><!--Enlace para recordar contraseña -->
                    <br><input id="redondo" type="text" placeholder="Correo Electrónico" name="email" required/><!-- campo para ingresar el email -->
                    <input id="redondo" type="password" placeholder="Contraseña" name="contra" size="24" required/><!-- campo para ingresar la contraseña -->
                    &nbsp;&nbsp;<input id="enviar" type="submit" src="boton entrar 1-01.png" width="45" height="35" onmouseover="sobre()" onmouseout="fuera()" name="boton"/><!-- Boton para entrar-->
 
      </form>
 </div>
 </header>
 
<?php
$email=$_POST['email'];
$contra=$_POST['contra'];
 
 
 
 
 
if(ISSET($_POST['boton']))
            {
 
    $conexion= mysqli_connect("localhost","root","","informacionplataforma"); //MODIFICAR conexión a base de datos
 
    if($conexion->connect_errno){// verifica la conexion si es correcta o no
         echo "error";
     }
 
     $consulta="select*from usuario where email='".$email."' and contrasena='".$contra."'"; // MODIFICAR, consulta el correo y contraseña en la base de datos
 
     $datos= mysqli_query($conexion,$consulta); //guarda los datos de la variable conexion y la variable consulta
 
    if(($datos->num_rows)>0){ // verifica si la información es correcta para iniciar sesión
 
         session_start(); // en caso correcto inicia sesión 
 
         $_SESSION["usuario"]=$datos["email"]; // el correo se guarda en una variable de sesión para redirigirlo a la otra pagina
 
         header("location:doctor.php"); // se redirige a la pagina asignada.
 
         exit();
 
     }else{
 
         echo "<h4><p align='center'>Datos Incorrectos</p></h4>"; //en caso de que el correo y la contraseña sean incorrectas se imprime este aviso. 
 
 
 
 
            }
 
 
 
 
 
 
 
}
 
 ?>

Esta es la pagina a la cual se redirije cuando se verifica la Sesión:

doctor.php :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
 
        <?php //Verifica que la sesion este iniciada
 
        session_start();
 
        if(!isset($_SESSION["usuario"])){
 
            header("location:index.php");
 
        }
 
        ?>
        <p>Bienvenido <strong><?php echo $_SESSION["usuario"]; ?> </strong>
    </body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Inicio de Sesión

Publicado por xve (6935 intervenciones) el 18/01/2018 18:54:17
Ese error te esta indicando, que no puede enviar la variable de sesión, si desde PHP ya has enviado código al navegador...

Por el session_start() al inicio de todo del código, incluso antes del código HTML.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Inicio de Sesión

Publicado por Juan (17 intervenciones) el 18/01/2018 19:22:23
Coloqué la verificación al principio de todo en la pagina (doctor.php) y aun así no inicia sesión...

Me sigue dando estos errores en el index.php y no me deja redirigir a la otra pagina doctor.php

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\phpestilo\index.php:265) in C:\xampp\htdocs\phpestilo\index.php on line 288

Fatal error: Cannot use object of type mysqli_result as array in C:\xampp\htdocs\phpestilo\index.php on line 290



doctor.php :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php //Verifica que la sesion este iniciada
 
        session_start();
 
        if(!isset($_SESSION["usuario"])){
 
            header("location:index.php");
 
        }
 
        ?>
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
 
 
        <p>Bienvenido <strong><?php echo $_SESSION["usuario"]; ?> </strong>
    </body>
</html>


index.php :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<header id="cabecera"><!-- la cabezera es el primer pedaso que es estatico-->
 
 <div class="secion"><!--parte estatca del formulario donde se inicia secion-->
      <form action="index.php" method="post" name="inicioSesion" align="right"><!--Formulario para iniciar sesion-->
                    <a href="" target="-blank" style="font-family: 'Montserrat Light', bold;font-size: 10px;text-shadow: 0px 0px 0px #aaa;  color:#686666;">Registrarse</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!--Enlace para registrarse--><!-- &nbsp; Este codigo deja espacio sin salto de linea-->
                    <a href="recuperarContraseña.html" target="-blank" style="font-family: 'Montserrat Light', bold;font-size: 10px;text-shadow: 0px 0px 0px #aaa; color:#686666;">¿Has olvidado tu contraseña?</a>&nbsp;&nbsp;&nbsp;<!-- &nbsp; Este codigo deja espacio sin salto de linea--><!--Enlace para recordar contraseña -->
                    <br><input id="redondo" type="text" placeholder="Correo Electrónico" name="email" required/><!-- campo para ingresar el email -->
                    <input id="redondo" type="password" placeholder="Contraseña" name="contra" size="24" required/><!-- campo para ingresar la contraseña -->
                    &nbsp;&nbsp;<input id="enviar" type="submit" src="boton entrar 1-01.png" width="45" height="35" onmouseover="sobre()" onmouseout="fuera()" name="boton"/><!-- Boton para entrar-->
 
      </form>
 </div>
 </header>
 
<?php
$email=$_POST['email'];
$contra=$_POST['contra'];
 
 
 
 
 
if(ISSET($_POST['boton']))
            {
 
    $conexion= mysqli_connect("localhost","root","","informacionplataforma"); //MODIFICAR conexión a base de datos
 
    if($conexion->connect_errno){// verifica la conexion si es correcta o no
         echo "error";
     }
 
     $consulta="select*from usuario where email='".$email."' and contrasena='".$contra."'"; // MODIFICAR, consulta el correo y contraseña en la base de datos
 
     $datos= mysqli_query($conexion,$consulta); //guarda los datos de la variable conexion y la variable consulta
 
    if(($datos->num_rows)>0){ // verifica si la información es correcta para iniciar sesión
 
         session_start(); // en caso correcto inicia sesión 
 
         $_SESSION["usuario"]=$datos["email"]; // el correo se guarda en una variable de sesión para redirigirlo a la otra pagina
 
         header("location:doctor.php"); // se redirige a la pagina asignada.
 
         exit();
 
     }else{
 
         echo "<h4><p align='center'>Datos Incorrectos</p></h4>"; //en caso de que el correo y la contraseña sean incorrectas se imprime este aviso. 
 
 
 
 
            }
 
 
 
 
 
 
 
}
 
 ?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Inicio de Sesión

Publicado por italo (150 intervenciones) el 18/01/2018 19:52:33
prueba asi:

doctor.php :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
session_start();
 
//Verifica que la sesion este iniciada
if(!isset($_SESSION["usuario"])) {
    header("location: index.php");
    exit();
}
 
?>
 
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <p>Bienvenido <strong><?php echo $_SESSION["usuario"];?> </strong>
    </body>
</html>

index.php :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
session_start(); //inicio sesión 
?>
<!-- la cabezera es el primer pedaso que es estatico-->
<header id="cabecera">
    <!--parte estatca del formulario donde se inicia secion-->
    <div class="secion">
        <!--Formulario para iniciar sesion-->
        <form action="doctor.php" method="post" name="inicioSesion" align="right">
            <!--Enlace para registrarse-->
            <a href="" target="-blank" style="font-family: 'Montserrat Light', bold;font-size: 10px;text-shadow: 0px 0px 0px #aaa;  color:#686666;">Registrarse</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <!-- &nbsp; Este codigo deja espacio sin salto de linea-->
            <a href="recuperarContraseña.html" target="-blank" style="font-family: 'Montserrat Light', bold;font-size: 10px;text-shadow: 0px 0px 0px #aaa; color:#686666;">¿Has olvidado tu contraseña?</a>&nbsp;&nbsp;&nbsp;
            <!-- campo para ingresar el email -->
            <br><input id="redondo" type="text" placeholder="Correo Electrónico" name="email" required>
            <!-- campo para ingresar la contraseña -->
            <input id="redondo" type="password" placeholder="Contraseña" name="contra" size="24" required>
            <!-- Boton para entrar-->
            &nbsp;&nbsp;<input id="enviar" name="boton" type="submit" src="boton entrar 1-01.png" width="45" height="35" onmouseover="sobre()" onmouseout="fuera()">
        </form>
    </div>
 </header>
 
<?php
 
if(isset($_POST['boton'])) {
 
    //MODIFICAR conexión a base de datos
    $conexion= mysqli_connect("localhost","root","","informacionplataforma");
 
    // verifica la conexion si es correcta o no
    if($conexion->connect_errno) {
         echo "error";
     }
 
    // MODIFICAR, consulta el correo y contraseña en la base de datos
 
    // aqui filtros anti-injection
    $email = $_POST['email'];
    $contra = $_POST['contra'];
 
    $consulta="select * from usuario where email = '".$email."' and contrasena = '".$contra."'";
 
    //guarda los datos de la variable conexion y la variable consulta
    $datos_query= mysqli_query($conexion,$consulta);
 
    // verifica si la información es correcta para iniciar sesión
    if(($datos_query->num_rows)>0) {
 
        // guardo todos los datos de la consulta.
        $datos= mysqli_fetch_array($datos_query);
 
        // el correo se guarda en una variable de sesión para redirigirlo a la otra pagina
        $_SESSION["usuario"] = $datos["email"];
 
        // se redirige a la pagina asignada.
        header("location: doctor.php");
        exit();
 
    } else {
 
        //en caso de que el correo y la contraseña sean incorrectas se imprime este aviso. 
        echo "<h4><p align='center'>Datos Incorrectos</p></h4>";
    }
 
}
 
?>

ojo que en el index, en el form , en el action no llamabas a la pagina action="doctor.php" sino al action="index.php"

y tu consulta sql,

1
$consulta="select*from usuario where email='".$email."' and contrasena='".$contra."'";

tenias todo el "select*from usuario" junto.

en todo caso, las select van primero probadas en mysql, luego empieza poco a poco jugando con la session, recuerda usar los style css.

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Inicio de Sesión

Publicado por Juan (17 intervenciones) el 18/01/2018 21:13:29
Le he realizado varias pruebas y lo único que hace es cargar la pagina, pero no la redirige y tampoco muestra errores, como si nada...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Inicio de Sesión

Publicado por italo (150 intervenciones) el 18/01/2018 21:31:03
en la pagina doctor.php hay que "comentar" la parte de verificacion de ssession usuario, para saber si es que funciona el resto.

doctor.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
session_start();
 
//Verifica que la sesion este iniciada
//if(!isset($_SESSION["usuario"])) {
//    header("location: index.php");
//    exit();
//}
 
?>
 
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <p>Bienvenido <strong><?php echo $_SESSION["usuario"]; ?> </strong>
    </body>
</html>

puedes agregar luego del session_start();


print_r($_SESSION);

para ver todo el contenido de la SESSION


haz probado en mysql a realizar esta query?

1
2
3
4
5
   // aqui filtros anti-injection
    $email = $_POST['email'];
    $contra = $_POST['contra'];
 
    $consulta="select * from usuario where email = '".$email."' and contrasena = '".$contra."'";

sobre todo, para saber si la query (escrita) tiene algun error, siempre en test es bueno hacerle un echo

1
2
3
$consulta="select * from usuario where email = '".$email."' and contrasena = '".$contra."'";
 
echo $consulta;

a ver, que te da.


en mysql prueba (sostituyendo $email y $contra) con datos que existan

1
2
3
4
select *
from usuario
where email = "EMAIL"
and contrasena = "CONTRASENA";

revisa los nombres de los campos (email, contrasena)...

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Inicio de Sesión

Publicado por Juan (17 intervenciones) el 19/01/2018 01:33:35
Estuve revisando el código por separado y funciona bien pero después de probar todo el proyecto junto, llegué a la coclusión de que es un error en Javascript o alguna otra parte del codigo más no de php o las bases de datos, por eso dejo copia del archivo para ver si de pronto se logra encontrar el error...

El IDE que utilizo es Netbeans y la base de datos MySQL. en phpMyAdmin.


Muchas Gracias!!!

nombre_DB
tabla_DB
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Inicio de Sesión

Publicado por italo (150 intervenciones) el 19/01/2018 18:22:18
hola...

he modificado solo la parte de este tema, el resto del contenido debes de revisarlo con calma y bien.

en el form, tenias dos id="redondo" que revisando el file css era una clase, la he modificado como tal...

he probado ambos files y funcionan, repito solo el contenido interesado en este tema lo demas debes adaptarlo al resto de tu codigo.

- he cambiado esta parte:

1
if($datos_query->num_rows == 1) {

ya que, en el momento del login debe de existir solo 1 record por usuario.


index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php
session_start(); //inicio sesión 
?>
 
<html>
<head>
 
    <meta charset="utf-8">
    <title>Recursos didácticos</title>
 
    <!--Etiqueta para agregar descripcion que se verá en los buscadores-->
    <meta name="description" content="">
     <!-- Insertar aquí mas Metatags-->
 
    <script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
 
    <script src="https://npmcdn.com/tether@1.2.4/dist/js/tether.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
 
 
    <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/redmond/jquery-ui.css">
    <!--link de pagina de estilo-->
    <link rel="stylesheet" href="plantilla.css" type="text/css" media="all">
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
 
    <!--link de el tipo de letra-->
    <link href="http://www.allfont.es/allfont.css?fonts=montserrat-light" rel="stylesheet" type="text/css" />
 
 
</head>
<body>
    <!--par regresar a arriba-->
    <a name="abajo"></a>
 
    <!--div que es la parte tracera osea el color gris-->
    <div id="global">
 
        <!-- la cabezera es el primer pedaso que es estatico-->
        <header id="cabecera">
 
            <!--parte estatca del formulario donde se inicia secion-->
            <div class="secion">
                <!--Formulario para iniciar sesion-->
                <form action="index.php" method="post" name="inicioSesion" align="right">
 
                    <!--Enlace para registrarse--><!-- &nbsp; Este codigo deja espacio sin salto de linea-->
                    <a href="" target="-blank" style="font-family: 'Montserrat Light', bold;font-size: 10px;text-shadow: 0px 0px 0px #aaa;  color:#686666;">Registrarse</a>
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
                    <!-- &nbsp; Este codigo deja espacio sin salto de linea--><!--Enlace para recordar contraseña -->
                    <a href="recuperarContraseña.html" target="-blank" style="font-family: 'Montserrat Light', bold;font-size: 10px;text-shadow: 0px 0px 0px #aaa; color:#686666;">¿Has olvidado tu contraseña?</a>
                    &nbsp;&nbsp;&nbsp;
 
                    <!-- campo para ingresar el email -->
                    <br>
                    <input type="text" name="email" class="redondo"  placeholder="Correo Electrónico"  required>
 
                    <!-- campo para ingresar la contraseña -->
                    <input type="password" name="contra" class="redondo"  placeholder="Contraseña"  size="24" required>
                    &nbsp;&nbsp;
 
                    <!-- Boton para entrar-->
                    <input id="enviar" name="boton" type="submit" src="boton entrar 1-01.png" width="45" height="35" onmouseover="sobre()" onmouseout="fuera()">
 
                </form>
            </div>
        </header>
    </div>
<?php
 
if(isset($_POST['boton'])) {
 
    //MODIFICAR conexión a base de datos
    $conexion= mysqli_connect("localhost","root","","informacionplataforma");
 
    // verifica la conexion si es correcta o no
    if($conexion->connect_errno) {
         echo "error";
     }
 
    // MODIFICAR, consulta el correo y contraseña en la base de datos
 
    // aqui filtros anti-injection
    $email = $_POST['email'];
    $contra = $_POST['contra'];
    $consulta="select * from usuario where email = '".$email."' and contrasena = '".$contra."'";
 
    //guarda los datos de la variable conexion y la variable consulta
    $datos_query = mysqli_query($conexion, $consulta);
 
    // verifica si la información es correcta para iniciar sesión
    if($datos_query->num_rows == 1) {
 
        // guardo todos los datos de la consulta.
        while($datos = mysqli_fetch_array($datos_query))  {
 
            // el correo se guarda en una variable de sesión para redirigirlo a la otra pagina
            $_SESSION["user"] = $datos["email"];
        }
        // se redirige a la pagina asignada.
        header("location: doctor.php");
        exit();
 
    } else {
 
        //en caso de que el correo y la contraseña sean incorrectas se imprime este aviso. 
        echo "<h4><p align='center'>Datos Incorrectos</p></h4>";
    }
 
}
 
?>
 
</body>
 
</html>

doctor.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
session_start(); //inicio sesión 
 
//Verifica que la sesion este iniciada
if(!isset($_SESSION["user"])) {
    header("location: index.php");
    exit();
}
 
?>
 
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <p>Bienvenido <strong><?php echo $_SESSION["user"];?> </strong>
    </body>
</html>

salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar