Diferencia entre revisiones de «Usuario:ManuelRomero/NewPHP/B2T8/BasesDatos/ejercicios»

De WikiEducator
Saltar a: navegación, buscar
(Página creada con «{{:Usuario:ManuelRomero/dwes/B2T8/BasesDatos/nav}}»)
 
Línea 1: Línea 1:
 
{{:Usuario:ManuelRomero/dwes/B2T8/BasesDatos/nav}}
 
{{:Usuario:ManuelRomero/dwes/B2T8/BasesDatos/nav}}
 +
 +
 +
 +
{{Actividad|
 +
*Añade en la base de datos usuarios varios usuarios diferentes
 +
*Crea un formulario para que el usuario sepuede registrar
 +
<source lang=html5>
 +
<div id="login">
 +
            <fieldset >
 +
                <legend>Login</legend>
 +
                <form action="." method="POST">
 +
                    <label for='nombre' >Nombre:</label>
 +
                    <input type="text" name ="nombre">
 +
                    <label for='pass'>Password: </label>
 +
                    <input type="text" name ="pass">
 +
                    <input type="submit" value="Cambiar Usuario" name="registrar"/>
 +
                </form>
 +
            </fieldset>
 +
        </div>
 +
</source>
 +
*Visualiza los accesos del usuario acutual así como los accesos del resto de usuarios
 +
*Aquí podemos ver el ejemplo
 +
http://www.manuel.infenlaces.com/cookies/
 +
*Para el formulario este sencillo css
 +
<source lang=css>
 +
#login fieldset {
 +
  width: 230px;
 +
  padding:10px;
 +
  border:1px solid #ccc;
 +
  background-color: #eee;
 +
}
 +
 +
#login legend {
 +
  font-family : Arial, sans-serif;
 +
  font-size: 1.3em;
 +
  font-weight:bold;
 +
  color:#333;
 +
}
 +
</source>
 +
<!--
 +
===Posible solución del ejercicio===
 +
<source lang=php>
 +
<?php
 +
// Si el usuario aún no se ha autentificado, pedimos las credenciales
 +
//Si me he registrado verifico los datos
 +
require_once "baseDatos.php";
 +
    $usuario = $_POST['nombre'];
 +
    $pass = $_POST['pass'];
 +
    $conexion = conectar();
 +
    if ($conexion != null) { //Se ha conectado ok a la bd
 +
        date_default_timezone_set('Europe/Madrid');
 +
        // Ejecutamos la consulta para comprobar si existe
 +
        // esa combinación de usuario y contraseña
 +
        $sql = <<<SQL
 +
                SELECT usuario FROM usuarios
 +
                where usuario = ?
 +
                and
 +
                contrasena =?
 +
SQL;
 +
 +
        $stmt = $conexion->stmt_init();
 +
        $stmt->prepare($sql);
 +
 +
        $stmt->bind_param("ss", $usuario, md5($pass));
 +
        $stmt->execute();
 +
        $stmt->store_result();
 +
        //$stmt->bind_result($u);
 +
// Si no existe, se vuelven a pedir las credenciales
 +
        $indice = 0;
 +
        if ($stmt->num_rows == 0) {
 +
            $error = "Usuario no reconocido";
 +
        } else {
 +
            if (isset($_COOKIE[$usuario])) {
 +
                //Leemos la cookie y obtenemos el índice
 +
                $acceso = $_COOKIE[$usuario];
 +
                $indice = count($acceso);
 +
            }
 +
            //Añadimos el nuevo acceso en la cookie correspondiente
 +
            setcookie($usuario . "[" . ($indice) . "]", time(), time() + 3600);
 +
        }
 +
        $stmt->free_result();
 +
        $conexion->close();
 +
 +
}
 +
?>
 +
<!DOCTYPE html>
 +
<html>
 +
    <head>
 +
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 +
        <title>Ejemplo Cookies en autentificación </title>
 +
        <link href="cookie.css" rel="stylesheet" type="text/css">
 +
    </head>
 +
    <body>
 +
        <div id="login">
 +
            <fieldset >
 +
                <legend>Login</legend>
 +
                <form action="." method="POST">
 +
                    <label for='nombre' >Nombre:</label>
 +
                    <input type="text" name ="nombre">
 +
                    <label for='pass'>Password: </label>
 +
                    <input type="text" name ="pass">
 +
                    <input type="submit" value="Cambiar Usuario" name="registrar"/>
 +
                </form>
 +
            </fieldset>
 +
        </div>
 +
 +
        <?php
 +
        if ($error == null) {
 +
            echo"<h2>Lista de accesos del usuario conectado actualmente $usuario</h2><hr/>";
 +
            if (isset($acceso)) {
 +
                for ($i = 0; $i < $indice; $i++)
 +
                    echo "-Acceso número $i a las  " . date("d/m/y \a \l\a\s H:i", $acceso[$i]) . "<br/>";
 +
            } else
 +
                echo "Bienvenido. Esta es su primera visita. $nombre<br/>";
 +
            //ahora recorro todos los usuarios";
 +
            foreach ($_COOKIE as $user => $accesos) {
 +
                if ($user != $usuario) {
 +
                    echo "<h2> Usuario $user </h2><br/><hr/>";
 +
                    foreach ($accesos as $numAcceso => $hora) {
 +
                        echo "Acceso número $numAcceso a las " . date("d/m/y \a \l\a\s H:i", $hora) . "<br/>";
 +
                    }
 +
                }
 +
            }
 +
        } else
 +
            echo "Se ha producido el error $error.<br />";
 +
        ?>
 +
    </body>
 +
</html>
 +
</source>
 +
*Bases de datos donde habrá que actualizar las credenciales
 +
<source lang =php>
 +
<?php
 +
 +
/*
 +
* 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.
 +
*/
 +
 +
function conectar(){
 +
      $usuarioBD ="manuel_manuel";
 +
      $pass ="xv2e6w";
 +
      $host = "localhost";
 +
      $bd = "manuel_dwes";
 +
      $conexion = new mysqli($host,$usuarioBD,$pass,$bd);
 +
      //Hacemos una consulta a ver si el usuario existe
 +
      if ($conexion->connect_errno){
 +
          echo ("Se ha producido un error conectado a la base de datos ".$conexion->connect_error);
 +
          return null;
 +
      }
 +
      return $conexion;
 +
}
 +
?>
 +
</source>
 +
-->
 +
}}

Revisión de 01:23 23 dic 2016





Icon activity.jpg

Actividad

  • Añade en la base de datos usuarios varios usuarios diferentes
  • Crea un formulario para que el usuario sepuede registrar
 <div id="login">
            <fieldset >
                <legend>Login</legend>
                <form action="." method="POST">
                    <label for='nombre' >Nombre:</label>
                    <input type="text" name ="nombre">
                    <label for='pass'>Password: </label>
                    <input type="text" name ="pass">
                    <input type="submit" value="Cambiar Usuario" name="registrar"/>
                </form>
            </fieldset>
        </div>
  • Visualiza los accesos del usuario acutual así como los accesos del resto de usuarios
  • Aquí podemos ver el ejemplo
http://www.manuel.infenlaces.com/cookies/
  • Para el formulario este sencillo css
#login fieldset {
  width: 230px;
  padding:10px;
  border:1px solid #ccc;
  background-color: #eee;
}
 
#login legend {
  font-family : Arial, sans-serif;
  font-size: 1.3em;
  font-weight:bold;
  color:#333;
}