La variable $_POST recibe los datos a través del navegador a diferencia de la variable $_GET que recibe las variables a través de la URL de la página. Para enviar los datos a través del navegador es necesario crear un formulario. En el ejemplo de hoy crearemos un sencillo formulario de login o acceso para administradores.
Este formulario es muy sencillo y llevará consigo un script muy tonto. El fin de la lección de hoy es que aprendáis a usar los formularios y a emplearlos de manera más o menos rudimentaria.
Para ello primero crearemos el formulario HTML que incluiremos en nuestro código php.
El fórmulario HTML sería más o menos así:
<form method="POST" action="formulario.php">Este código html mostrará un formulario cuyo método será POST ($_POST) y que empleará a formulario.php (nombre de nuestro script). Contiene 2 campos visibles, 1 oculto y un botón de enviar. El campo oculto no tiene mucho sentido en este script pero a veces si que nos sirve de utilidad para enviar información que nos gustaría que no fuese modificada por el usuaro. En cualquier caso siempre se puede modificar por lo que no debéis guardar ahí información demasiado sensible.
<input type="text" name="usuario"> <br />
<input type="password" name="contra"><br />
<input type="hidden" name="ok" value="1">
<input type="submit" value="Enviar">
</form>
El siguiente paso será crear nuestro script en php. Su funcionamiento será básico. Como siempre validaremos las entradas o nuestra web será una basura insegura. Para ello mismo emplearemos el siguiente código.
$usuario = addslashes(htmlentities(strip_tags($_POST["usuario"]);La variable usuario está fuertemete verificada. Para empezar eliminaremos todos los códigos html y php que incluya el nombre de usuario. A continuación transformaremos los elementos susceptibles de ser ejecutados como html a sus identidades de texto. Un ejemplo < se transforma < y así con todos los caracteres. También y aunque no hayamos hablado de las inyecciones SQL ni de bases de datos, añadiremos el carácter de escape \ para evitar los problemas con la '. Por ello mismo se transformará ' en \' y no habrá problemas.
$contraseña = sha1($_POST['password']);
$paso = intval($_POST["ok"]);
El campo de contraseña lo cifraremos a sha1 para evitar que ojos resultones miren y paso la transformaremos a número entero.
El siguiente paso será añadir una sentencia condicional para ver que acción realizamos según la variable paso. Para ello:
if ($paso==0){//No ha usado el formularioMuy bien, ya tenemos nuestro código. Para usarlo crearemos un archivo llamado formulario.php y lo subiremos a nuestro servidor. El contenido de este archivo será:
}else{// ha usado el forrmulaio
}
<?phpCon todo esto os invito a que probéis a jugar con los formularios y hagáis combinaciones con $_GET y $_POST. En próximas ediciones hablaremos de la variable $_COOKIE y en muy poquito sobre bases de datos.
$usuario = addslashes(htmlentities(strip_tags($_POST["usuario"]);
$contraseña = sha1($_POST['password']);
$paso = intval($_POST["ok"]);
if ($paso==0){//No ha usado el formulario
echo '<form method="POST" action="formulario.php">
<input type="text" name="usuario"> <br />
<input type="password" name="contra"><br />
<input type="hidden" name="ok" value="1">
<input type="submit" value="Enviar">
<input type="text" name="usuario"> <br />
<input type="password" name="contra"><br />
<input type="hidden" name="ok" value="1">
<input type="submit" value="Enviar">
</form>';
else{
if ($usuario="ZeYt" && $password="99800b85d3383e3a2fb45eb7d0066a4879a9dad0"){
echo "Bienvenido ".$usuario;
}else{
echo "La contraseña es hola y el usuario es ZeYt";
}
}
?>
No hay comentarios:
Publicar un comentario