Continuando con la pequeña serie de posts que intentan mostrar algunas fallas comunes que hacemos los aficionados a PHP, e incluso los que se dedican profesionalmente a desarrollar aplicaciones con este lenguaje, esta vez tocaremos el tema de sesiones.
user.php, necesita de la clase ezSQL, puedes saber mas sobre esta clase en este artículo.
php:
<?php
class User {
var $id;
var $name;
var $email;
function Authenticate($user, $password) {
global $db, $site_key;
$user = $db->get_row (
'SELECT id, name, email, password
FROM users
WHERE username = \'' . $db->escape($user) . '\'');
if ( $user && $user->password == md5( $site_key . $password ) ) {
$this->id = $user->id;
$this->name = $user->name;
$this->email = $user->email;
return true;
}
return false;
}
}
?>
php:
// login.php
<?php
include dirname(__FILE__) . '/db.php'; # genera una instancia de la clase ezSQL
include dirname(__FILE__) . '/user.php';
/*
if ( ! empty( $_SESSION['user'] ) ) {
header( 'Location: /admin' );
exit();
}
*/
if ( ! empty( $_POST['user'] ) && ! empty( $_POST['password'] ) ) {
$user = new User();
if ( $user->Authenticate( $_POST['user'], $_POST['password'] ) === true ) {
$_SESSION['user'] = $user;
header( 'Location: /admin' );
exit();
}
}
?>
¿Qué problema existe en el código mostrado? -no es un error de sintáxis 😀
Nota: si eres testigo de otros errores 🙂 y quieres compartir esa información, no dudes en contactarnos (describe el problema, una posible solucion, si ya lo publicaste en tu blog, envíanos el link para comentar el problema y citar tu post)