Usuario:ManuelRomero/PHP/Examen segunda
De WikiEducator
< Usuario:ManuelRomero | PHP
Revisión a fecha de 22:48 25 may 2017; ManuelRomero (Discusión | contribuciones)
Ejercicio de xajax
- Este ejercicio simplemente tiene que añadir el usuario en una lista y escribir el nombre y fecha del último usuario insertado
- Muchos/as os habéis liado con sesiones y otro tema para la lista. No me lo había imaginado esto, no hace falta en absoluto, aunque así también se puede conseguir
- Os adjunto el código que como veis es bastante sencillo
Ejercicio de xajax |
---|
<?php //cargo la librería de xajax require ('xajax_core/xajax.inc.php'); $ajax = new xajax(); //Si quiero obtener el debug //$ajax->configure('debug', false); //Estas funciones podrán ser invocadas de forma asíncrona desde el cleinte $ajax->register(XAJAX_FUNCTION, 'modificar_html'); //Este método procesará las llamadas que reciba la página //Imporante llamarla antes de que el guión genere ningúna salida. $ajax->processRequest(); //Por si cambiara la ubicación de xajax_js //$ajax->configure('javascript URI','./'); //La librería necesita generar código java script en la página que envíamos al cliente $ajax->printJavascript(); /** * * @param string $nombre nombre insertado en el formulario * @return \xajaxResponse objeto xajax para actualizar la página en el cliente */ function modificar_html($nombre) { $respuesta = new xajaxResponse(); $texto = "Te has conectado como $nombre a las " . date("H-i-s", time()); //Insertamos un nuevo texto en un elemento html $respuesta->assign('datos', 'innerHTML', $texto); //Actualizamos un elemento en la página html $lista = "<li>$nombre</li>"; $respuesta->append('lista', 'innerHTML', $lista); return $respuesta; } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Página de ejemplo ajax</title> </head> <script type="text/javascript"> function modificar() { var nombre = document.getElementById('nombre') xajax_modificar_html(nombre.value); } </script> <body> <div id="datos"><h2>No te has conectado hasta ahora</h2></div> <h1>Esta imagen no va a cambiar</h1> <img src="imagen.jpg" /><br /> <form action="javascript:void(null)" method="post" > <label for="nombre">Nombre </label> <input type="text" name="nombre" id="nombre"> <br /> <input type="submit" value="actualizar" onclick= 'modificar();' /> </form> <ol> <div id="lista"></div> </ol> </body> </html> |
Ejercicio de base de datos
- Es importante leer el enunciado, hay personas que parece que no lo han leído pues no han seguido las especificaciones
- La parte de base de datos se repite continuamente. En este caso he creado un fichero de funciones para las acciones con bases de datos
- Siguiendo las especificaciones se implementan los sigueintes ficheros
index.php |
---|
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <form action="." method="POST"> <input type="submit" value="Registrarse" name="submit"> <input type="submit" value="Acceder" name="submit"> </form> <?php if (isset($_POST['submit'])) { $pagina = $_POST['submit']; header("Location:$pagina.php"); } ?> </body> </html> |
Registrarse.php |
---|
<?php if (isset($_POST['resgistrarse'])) { require_once ("funciones.php"); $nombre = $_POST['nombre']; //Previamente a crear el usuario verificamos que no exista //Si es así procedemos a insertarlo if (existe( $nombre)) echo "El usuario $nombre ya existe, elije otro nombre"; else { $sentencia = "insert into usuario values (?,?,?)"; //Ejecutamos insertar //Este método nos devolverá la password generada o null si no se ha insertado //Actuamos en consecuencia redirigiendo según especificaciones $pass = insertar( $nombre, $sentencia); if ($pass != null) { echo "<h2>Se ha creado el usuario con password $pass </h2>"; header("refresh:5;url=index.php "); } else { echo "<h2>No se ha podido insertar el usuario $nombre </h2>"; header("refresh:5;url=index.php "); } } } ?> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <form action="Registrarse.php" method="POST"> Nombre <input type="text" name="nombre"> <input type="submit" value="Registrarse" name="resgistrarse"> </form> </body> </html> |
cambioPass.php |
---|
<?php if (isset($_POST['cambiar'])) { require_once ("funciones.php"); //Necesito el nombre para poder verificar si son datos correctos $nombre = $_POST['nombre']; $pass = $_POST['pass']; $pass2 = $_POST['pass2']; //Las pass han de coincidir if ($pass == $pass2) { $con = conectarse(); //Tengo en cuneta si actualizo o no e informo de ello $ok = actualizar($nombre, $pass); if ($ok == true) { header("Location:accedido.php?nom=$nombre"); } else { echo "<h1> No se ha podido actualizar la password</h1>"; } } else { echo "<h1> Las password no coinciden, han de coincidir</h1>"; } } ?> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <form action="cambioPass.php" method="POST"> Nueva Passowrd <input type="text" name="pass"> Confirmar Nueva Password <input type="text" name="pass2"> <input type="hidden" name="nombre" value = "<?php echo $_GET['nom'] ?>" /> <input type="submit" value="Acutalizar Password" name="cambiar"> </form> </body> </html> |
Acceder.php |
---|
<?php if (isset($_POST['acceder'])) { require_once ("funciones.php"); //Conecto a la BD y leo el nombre $con = conectarse(); $nombre = $_POST['nombre']; $pass = $_POST['pass']; //Previamente a crear el usuario verificamos que no exista //Si es así procedemos a insertarlo $control = verifica( $nombre, $pass); switch ($control) { case 0: //Usuario correcto, primer acceso => Cambiar password echo "<h2>Por ser el primer acceso vas a cambiar el password</h2>"; header("refresh:3;url=cambioPass.php?nom=$nombre"); exit(); break; case 1: //Usuario correcto, segudos accesos => Ya cambió la password header("Location:accedido.php?nom=$nombre"); exit(); break; case -1: echo "<h1>Usuario / Password no son correctos</h1>"; break; } } ?> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <form action="Acceder.php" method="POST"> Nombre <input type="text" name="nombre"> Password <input type="text" name="pass"> <input type="submit" value="Acceder" name="acceder"> </form> </body> </html> |