Me he hecho un blog en PHP: Descubriendo la <?

He trabajado en PHP siempre a muy alto nivel, primero con WordPress, y luego vía Codeigniter, así que me apetecía bajar un poco de nivel y hacer un poco de fontanería, con un objetivo claro, aprender qué hay por debajo de todo lo que trabajo.

En esta serie veremos cómo crear un blog muy simple usando las opciones más básicas que ofrece PHP.

La idea:

Simple, lo primero que haremos será un formulario de login, para aprender cómo php maneja las acciones get y post.

Para comenzar, creamos un formulario estándar con 2 etiquetas, dos campos de texto y un botón para enviar los datos. El formulario en su campo action tiene como objetivo la página login.php, y en method especificamos que los valores se pasen mediante POST:

<form>action="login.php" method="post"></form>
		<label for="user">User:</label> <input type="text" name="user" />
		<label for="user">Password:</label> <input type="password" name="password" />
		<input type="text" />type="submit"/>
	</form>

Hasta aquí, HTML estándar, veamos qué pasa en el login.php (el código disponible a continuación va entre los campos <?php y ?>)

	$username = "roberto";
	$password = "3bc2e28ca8940090c3d80c851784a5d5"; //cifrado

	if (($_POST['user'] == $username) && (MD5($_POST['password']) == $password)) {
		setcookie("username","roberto");
	}

En este caso lo primero que hacemos es definir un par de variables, usuario y contraseña, cuyos valores los compararemos con los valores que vienen desde el formulario anterior.

Para comparar los datos, lo que hacemos es obtener el contenido del POST del formulario usando la variable $_POST de php, y comparándolo con el valor almacenado, lo mismo hacemos con la contraseña, pero con un paso intermedio.

Dicho paso consiste en encriptarla generar un hash a partir de ella usando un algoritmo conocido como MD5 (Gracias Vicente por el apunte), de tal manera que no se guarda el dato en texto plano, como medida de seguridad, la función MD5 devuelve una cadena de caracteres con el resultado.

Si la autorización es correcta, el siguiente paso es establecer una cookie con el nombre de usuario en este caso. Las cookies son pequeños ficheros que se guardan en la memoria del ordenador, y que sirven para mantener, por ejemplo, una sesión iniciada en la web.

Tras este primer post hemos visto cómo pasar datos de un fichero index.html a otro login.php, además hemos visto cómo establecer cookies. En la próxima entrega veremos más información sobre el tratamiento de cookies.

Más información:

3 pensamientos en “Me he hecho un blog en PHP: Descubriendo la <?

  1. Vicente Cartas

    Una pequeña corrección: MD5 no encripta una contraseña, MD5 es un algoritmo de hashing criptográfico. Por eso si necesitaras recuperar la contraseña no podrías, o alguien podría inventarse otra contraseña que no es la correcta pero genera el mismo hash y colarse en el sistema.

    Responder
  2. Joken

    Hey!
    Bonito tema sobre el que escribir, espero los demás posts =D
    Podrías utilizar también $_SESSION[] para gestionar el login de usuarios almacenando el user ahí, algo como:

    un abrazo ;)

    Responder
  3. Daniel Rozo

    Otro apunte: lo que se hace en el texto no es *autorizar* sino *autenticar*. Autorizar es cuando trabajas, generalmente, con oAuth, scopes y claims, entonces autorizas a una app para acceder a la información de un usuario autenticado, i.e. verificado contra la BBDD.

    Responder

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s