Você está na página 1de 7

1.

Preparando una tabla en MySQL


Vamos a comenzar preparando una tabla en nuestra base de datos, la cual almacenara la
informacin de los usuarios, para crear la tabla simplemente copia y ejecuta la siguiente
consulta SQL:
1
2
3
4
5
6
CREATE TABLE `usuarios` (
`idusuario` INT(11) NOT NULL AUTO_INCREMENT,
`usuario` VARCHAR(20) NOT NULL,
`password` VARCHAR(10) NOT NULL,
PRIMARY KEY (`idusuario`)
)
2. Conectando a MySQL en PHP
Ya una vez que tengamos la estructura de nuestra tabla, creamos un archivo
llamado conexion.php.
1
2
3
4
5
6
<?php
// datos para la coneccion a mysql
define('DB_SERVER','localhost');
define('DB_NAME','TU_BASE_DE_DATOS');
define('DB_USER','TU_USUARIO');
define('DB_PASS','TU_CLAVE');
La funcion define como su nombre lo dice, se usa para definir una constante nominada, que
nos permite almacenar valores escalares(string, integer, float, boolean y nulos).

1
2
3
$con = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
mysql_select_db(DB_NAME,$con);
?>
La funcin de mysql_connect nos servira para abrir una conexin al servidor de MySQL
usando los 3 parmetros que declaramos anteriormente.
Luego mysql_select_db selecciona la base de datos usando 2 parmetros, el nombre de la
base de datos y la conexin a usar.
Cdigo completo
1
2
3
4
5
6
7
8
9
<?php
// datos para la conexion a mysql
define('DB_SERVER','localhost');
define('DB_NAME','TU_BASE_DE_DATOS');
define('DB_USER','TU_USUARIO');
define('DB_PASS','TU_CLAVE');
$con = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
mysql_select_db(DB_NAME,$con);
?>
3. logout.php
Creamos un archivo que se llame logout.php para que realice el cierre de sesin.
1
2
3
4
5
6
<?php
session_start();
session_destroy();

header('location: index.php');
?>
La funcion de session_destroy() destruye toda la informacin registrada de una variable
de sesin, luego elheader(location: index.php) redireccionara al usuario al
index.php
4. index.php
Ahora pasamos el archivo index.php, el cual contendr el formulario de login y al mismo
tiempo el mensaje de bienvenida o de error.

1
2
3
<?php
session_start();
include_once "conexion.php";
session_start() crea una sesin para ser usada mediante una peticin GET o POST, o
pasado por una cookie y la sentencia include_once es la usaremos para incluir el archivo
de conexin a la base de datos que creamos anteriormente.
Funcin verificar_login()
Vamos a crear una funcin llamada verificar_login, esta se encargara de hacer una
consulta a la base de datos para saber si el usuario ingresado es correcto o no.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function verificar_login($user,$password,&$result)
{
$sql = "SELECT * FROM usuarios WHERE usuario='$user' and password='$password'";
$rec = mysql_query($sql);
$count = 0;
while($row = mysql_fetch_object($rec))
{
$count++;
$result = $row;
}
if($count == 1)
{
return 1;
}
else
{
return 0;
}
16
17
18
19
}
Luego haremos una serie de condicionales que identificaran el momento en el boton de login
es presionado y cuando este sea presionado llamaremos a la
funcin verificar_login() pasandole los parmetros ingresados:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if(!isset($_SESSION['userid']))
{
if(isset($_POST['login']))
{
if(verificar_login($_POST['user'],$_POST['password'],$result) == 1)
{
$_SESSION['userid'] = $result->idusuario;
header("location:index.php");
}
else
{
echo '<div class="error">Su usuario es incorrecto, intente nuevamente.</div>';
}
}
?>
<form action="" method="post" class="login">
<div><label>Username</label><input name="user" type="text" ></div>
<div><label>Password</label><input name="password" type="password"></div>
<div><input name="login" type="submit" value="login"></div>
</form>
<?php
} else {
echo 'Su usuario ingreso correctamente.';
echo '<a href="logout.php">Logout</a>';
}
?>
Linea 1: La primera condicin es para saber si existe o no ya la variable de sesin que se va a crear
cuando el usuario se logee
Linea 3: Si la primera condicin no pasa, haremos otra preguntando si el boton de login fue
presionado
Linea 5: Si el boton fue presionado llamamos a la funcin verificar_login() dentro de otra condicin
preguntando si resulta verdadero y le pasamos los valores ingresados como parmetros.
Linea 7 y 8: Si el login fue correcto, registramos la variable de sesin y al mismo tiempo
refrescamos la pagina index.php.
Linea 12: Si la funcin verificar_login() no pasa, que se muestre un mensaje de error.
Linea 22: Si la variable de sesin userid ya existe, que muestre el mensaje de saludo.
Decoracin opcional con CSS
Esta parte es opcional ya que no influye en nada en el funcionamiento del sistema, es
unicamente decorativa:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
*{
font-size: 14px;
font-family: sans-serif;
}
form.login {
background: none repeat scroll 0 0 #F1F1F1;
border: 1px solid #DDDDDD;
margin: 0 auto;
padding: 20px;
width: 278px;
}
form.login div {
margin-bottom: 15px;
overflow: hidden;
}
form.login div label {
display: block;
float: left;
line-height: 25px;
}
form.login div input[type="text"], form.login div input[type="password"] {
border: 1px solid #DCDCDC;
float: right;
padding: 4px;
}
form.login div input[type="submit"] {
background: none repeat scroll 0 0 #DEDEDE;
border: 1px solid #C6C6C6;
float: right;
font-weight: bold;
padding: 4px 20px;
}
.error{
color: red;
font-weight: bold;
margin: 10px;
text-align: center;
}

Cdigo completo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
session_start();
include_once "conexion.php";

function verificar_login($user,$password,&$result) {
$sql = "SELECT * FROM usuarios WHERE usuario = '$user' and password = '$password'";
$rec = mysql_query($sql);
$count = 0;

while($row = mysql_fetch_object($rec))
{
$count++;
$result = $row;
}

if($count == 1)
{
return 1;
}

else
{
return 0;
}
}

if(!isset($_SESSION['userid']))
{
if(isset($_POST['login']))
{
if(verificar_login($_POST['user'],$_POST['password'],$result) == 1)
{
$_SESSION['userid'] = $result->idusuario;
header("location:index.php");
}
else
{
echo '<div class="error">Su usuario es incorrecto, intente nuevamente.</div>';
}
}
?>

<style type="text/css">
*{
font-size: 14px;
}
form.login {
background: none repeat scroll 0 0 #F1F1F1;
border: 1px solid #DDDDDD;
font-family: sans-serif;
margin: 0 auto;
padding: 20px;
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
width: 278px;
}
form.login div {
margin-bottom: 15px;
overflow: hidden;
}
form.login div label {
display: block;
float: left;
line-height: 25px;
}
form.login div input[type="text"], form.login div input[type="password"] {
border: 1px solid #DCDCDC;
float: right;
padding: 4px;
}
form.login div input[type="submit"] {
background: none repeat scroll 0 0 #DEDEDE;
border: 1px solid #C6C6C6;
float: right;
font-weight: bold;
padding: 4px 20px;
}
.error{
color: red;
font-weight: bold;
margin: 10px;
text-align: center;
}
</style>

<form action="" method="post" class="login">
<div><label>Username</label><input name="user" type="text" ></div>
<div><label>Password</label><input name="password" type="password"></div>
<div><input name="login" type="submit" value="login"></div>
</form>
<?php
} else {
echo 'Su usuario ingreso correctamente.';
echo '<a href="logout.php">Logout</a>';
}
?>
92
93
94

Você também pode gostar