Ahora que podemos mezclar el HTML y PHP necesitaremos que el usuario empiece a interactuar en nuestra plataforma.
Una registro de usuarios es un ejemplo de la interacción que estoy hablando, el usuario completará sus datos en un formulario, luego estos serán enviados a un archivo PHP para ser procesados, de esta manera comenzaremos a ver como el usuario nos enviará información, en este caso lo guardaremos en una base de datos, pero es a modo de ejemplo ya que el proceso a realizar es indiferente para nosotros por que cualquiera sea la acción que tomemos no es importante, lo importante aquí es que estaremos recibiendo información a través del formulario para realizar la acción que creamos conveniente.
Los formularios HTML podemos, a grandes rasgos, dividirlos en 4.
- Apertura del formulario con el tag <form>
- Los tags para que el usuario ingrese la información, por ejemplo <input>, <textarea> o <select> entre otros
- El botón para enviar el formulario con el tag <input>
- EL cierre del formulario con el tag </form>
Creamos un formulario que pida al usuario ingresar su nombre completo, su email y una contraseña, estos datos serán enviados a un archivo PHP y será el encargado de guardarlos en una base de datos MySQL
<html>
<head>
<title>Registrarse</title>
</head>
<body>
<h1>Registración</h1>
<form method="post" action="registrarse.php">
<table width="400">
<tr>
<td width="150"><label>Nombre:</label></td>
<td width="250"><input type="text" name="nombre" /></td>
</tr>
<tr>
<td><label>Email:</label></td>
<td><input type="text" name="email" /></td>
</tr>
<tr>
<td><label>Contraseña:</label></td>
<td><input type="password" name="contrasena"/></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" name="registrarse" value="Registrarse"/></td>
</tr>
</table>
</form>
</body>
</html>Como podemos observar muchos de los tags HTML que utilizamos tienen lo que se denominan atributos
El tag <form> posee 2 atributos, el primero es method y éste especificará el método HTTP que usará cuando envíe la información. El segundo es action y especifica donde será enviada la información cuando el formulario sea enviado.
Luego tenemos el tag <input> nuestro primero atributo es type y posee las siguientes variantes button, checkbox, file, hidden, image, password, radio, reset, submit, text, en este ejemplo usamos 3 de éstas, text que será un campo de texto libre, password que también será un campo de texto libre pero no serán mostrados los caracteres que iremos tipeando y por último submit que será un botón que al presionarlo enviará el formulario completo al action del form. También tenemos el atributo name que es un nombre que identificará al elemento y el último atributo usado aquí es value este será el valor predeterminado que tomará el elemento.
Ahora recibamos la información que nos provee el formulario y guardemos ésta en la base de datos.
Creamos un archivo registrarse.php (que es el action del formulario) e insertamos los datos.
La información nos llegará al archivo PHP en un array llamado $_POST los índices del array serán igual a los name que hemos definido en el formulario
<?php $mysqli = new mysqli("localhost", "usuario", "password", "base"); if (mysqli_connect_errno()) { printf("Imposible conectarse: %s\n", mysqli_connect_error()); exit(); } $query = "INSERT INTO usuarios (nombre,email,contrasena) VALUES (?,?,?)"; /* Ejecuto el método prepare y este me va a devolver el objeto */ if ($stmt = $mysqli->prepare($query)) { /* Reemplazo las ? por las variable con bind_param */ $stmt->bind_param('sss', $_POST['nombre'], $_POST['email'], $_POST['contrasena']); /* ejecuto el query */ $stmt->execute(); /* cierro stmt */ $stmt->close(); } ?> <html> <head> <title>Registrarse</title> </head> <body> <h1><?=$_POST['nombre'];?>, usted se ha registrado exitosamente</h1> </body> </html>