You are on page 1of 23

Autenticación de usuarios con PHP y MySQL sin programar nada –

Manejo de sesiones
Septiembre 2, 2009 at 6:18 pm | In PHP, Programacion | 35 Comments 
Tags: autenticacion, dreamweaver, manejo, mysql, php, sesiones, usuarios, validar

Pues es verdad, te voy a explicar cómo restringir el acceso a una página web mediante un
usuario y contraseña o manejo de sesiones que estén en una base de datos de MySQL sin que
programes una sola línea de código. Esto no significa que no necesites saber programación
PHP, lo necesitas pero aquí te daré algunos pasos para que hagas todo más rápido y si conoces
PHP pues lo mejores a tu gusto.

Las herramientas que vamos a utilizar son:

o Wamp Server
o Dreamweaver 8.0 o superior
o Mozilla Firefox o Internet Explorer o cualquier otro navegador

Una vez que tengamos instalado nuestro servidor web, en este caso Wamp Server vamos a
proceder a explicar este tutorial.

Primero crearemos una base de datos, en este caso se llama “manejo_usuarios” ésta contiene
una tabla llamada “usuarios” con dos campos: “user” y “password”. Podemos agregar dos
registros para hacer la prueba. Puedes crear la base usando phpMyAdmin que trae el propio
WAMP. Entonces tenemos algo así:

Clic en la imagen para ampliar

Una vez creada la base de datos vamos a crear las páginas web, vamos a necesitar para esta
prueba 3 páginas PHP. Recuerda guardarlas en la ruta C:\wamp\www para poder
visualizarlas.  Bueno de hecho al abrir Dreamweaver (en este caso usaré la versión CS) antes
de crear cualquier archivo debemos ir al menú “Sitio”  -> “Nuevo sitio”. Yo dentro de la ruta
C:\wamp\www creé una carpeta llamada “UsuariosenPHP” y dentro una carpeta llamada
“images”. Respecto a esto último hay que destacar que todas las imágenes que insertes en el
sitio desde cualquier ruta se copiará automáticamente a la carpeta “images”. Entonces
llenamos con los datos necesarios:

o Nombre del sitio: Le puedes poner cualquier nombre


o Carpeta raíz local: Aquí escogemos la carpeta donde está el sitio, en mi caso

C:\wamp\www\UsuariosenPHP
o Carpeta predeterminada de imágenes: La ruta de la carpeta que creamos antes

C:\wamp\www\UsuariosenPHP\images

Entonces nos queda algo así:

Clic en la imagen para ampliar

Ahora dentro de la misma ventana nos vamos a “Servidor de pruebas”, en Modelo de servidor
seleccionamos “PHP MySQL” y en Acceso escogemos “Local/Red”. En Carpeta de servidor
escogemos la ruta del WAMP, en este caso C:\wamp y en prefijo del URL escogemos la ruta
con la que cargaremos nuestro sitio web, para este caso sería:
http://localhost/UsuariosenPHP/.

Nota: Si usas otro servidor web como XAMPP tienes que cambiar esas rutas.

Entonces nos queda algo así:


Clic en la imagen para ampliar

Damos clic en Aceptar. No olvides realizar este paso o tendrás problemas más adelante.

Ahora crearemos las páginas web. Como mencioné antes serán 3 páginas web sencillas las que
necesitamos para esta prueba:

o index.php –> Esta página será la principal, tendrá un título y un enlace a la página

ingreso.php
o ingreso.php –> Tendrá un formulario donde se ingresará el usuario y la contraseña

para autenticarse.
o entrar.php –> Es la página donde ingresaremos si la autenticación fue exitosa.

Ahora veamos qué tiene cada página:

o index.php

Tendrá únicamente un título y un enlace a la página ingreso.php como se muestra en la


siguiente figura:
Clic en la imagen para ampliar

o ingreso.php

Esta página contendrá un formulario que pida el nombre de usuario y la contraseña. El campo
de texto del usuario se llamará “usuario” (sin comillas) y el campo de texto del password se
llamará “contrasena” (sin comillas). Entonces tenemos algo así:

Clic en la imagen para ampliar

o entrar.php

Esta página tiene un título, tiene una tabla que dirá el nombre del usuario que accedió y
tendrá un link que diga Desconectar que permitirá cerrar la sesión (ya explicaré cómo hacer
eso):

Clic en la imagen para ampliar

Antes de validar los usuarios (que es lo que nos interesa) debemos hacer algo en esta página
entrar.php. Debemos restringir el acceso a ella, pues la idea es que sea visible solo por quien
inicia sesión. Bien para ello nos vamos al menú Insertar -> Objetos de aplicación ->
Autenticación de usuarios -> Restringir acceso a página:
Clic en la imagen para ampliar

En el cuadro de opciones establecemos los siguientes parámetros:

Clic en la imagen para ampliar

Ahora cada vez que alguien quiera acceder a esa página sin haber iniciado sesión, será
redireccionado automáticamente a la página ingreso.php.

o Validar usuarios

Bien ahora si vamos a validar el ingreso de los usuarios.  En mi base de datos tengo dos
usuarios registrados que son:

o Usuario #1:   usuario = usuario1,   contraseña = prueba1


o Usuario #2:   usuario = usuario2,   contraseña = prueba2

La validación lo haremos en la página ingreso.php nos vamos al menú Ventana -> Bases de
datos y se nos carga una ventana en el panel derecho, si seguiste los pasos anteriores al crear
Nuevo sitio y al configurar el servidor de prueba, entonces no tendrás problemas en este
paso.

En la ventana de Bases de datos damos clic en el símbolo + y luego en “Conexión MySQL”. Se


nos aparece una ventana y llenamos con los siguientes datos:
o Nombre de conexión: cualquier nombre, en mi caso se llama conexion_usuarios.
o Servidor MySQL: si la base de datos está en la misma máquina escribimos “localhost”

(sin comillas).
o Nombre de usuario: por lo general el nombre por defecto es “root” (sin comillas).
o Contraseña: por lo general se deja el espacio en blanco.
o Base de datos: damos clic en “Seleccionar” y escogemos la base de datos que

creamos, en mi caso “manejo_usuarios”.

Nos quedaría así:

Clic en la imagen para ampliar

Ahora en la ventana “Bases de datos” aparece la base seleccionada con el nombre que le
pusimos. Ahora nos vamos al menú Ventana -> Vinculaciones. En la ventana que aparece en el
menú lateral damos clic en el signo + y escogemos “Juego de registros (consulta)” y
escribimos los siguientes datos:

o Nombre: cualquier nombre que queramos darle a la consulta o recordset, en mi caso

se llama “consulta_usuarios” (sin comillas).


o Conexión: seleccionamos la conexión que creamos anteriormente.
o Table: escogemos la tabla que contiene los datos, en mi caso “usuarios”.
o Columnas: escogemos la opción todo, ya que queremos los datos tanto del usuario

como del password.

Nos queda algo así:


Clic en la imagen para ampliar

Si damos clic en Prueba podemos ver todos los registros que tiene esta consulta. Damos clic
en aceptar. Automáticamente Dreamweaver crea el código PHP, sin que hayamos programado
absolutamente nada. Yo uso la versión CS o versión 8, aquí el código PHP se crea en el mismo
archivo, pero en versiones superiores como la CS4 crea el código en un archivo separado.

Bien, una vez hecha la conexión a la base de datos vamos a validar el usuario. Nos vamos al
menú Insertar -> Objetos de aplicación -> Autenticación de usuarios -> Conectar usuario. Se
nos aparece un cuadro y establecemos los siguientes parámetros:

o Obtener entrada de formulario: aquí va el nombre del formulario, por defecto se

llama form1, pero si le cambiaron de nombre va el nombre que le pusieron.


o Campo nombre de usuario: se escoge el nombre del campo de texto que contiene al

usuario, en mi caso se llama “usuario” (sin comillas).


o Campo contraseña: se escoge el nombre del campo de texto que contiene la

contraseña, en mi caso se llama “contrasena” (sin comillas).


o Validar utilizando conexión: escogemos el nombre de la conexión a la base de datos

que creamos antes, en mi caso “conexion_usuarios” (sin comillas).


o Tabla: escogemos el nombre de la tabla que contiene los usuarios, en mi caso

“usuarios” (sin comillas).


o Columna nombre de usuario: escogemos la columna que contiene los usuarios, en mi

caso “user” (sin comillas).


o Columna contraseña: escogemos la columna que contiene las contraseñas, en mi caso

“password” (sin comillas).


o Si la conexión es correcta, ir a: aquí escogemos la página web a donde se

redireccionará al usuario si los datos ingresados son correctos, en este caso entrar.php.
o Si falla la conexión, ir a: aquí escogemos la página web a donde se redireccionará al

usuario si los datos ingresados son erróneos, en mi caso ingreso.php.

Nos queda así:

Clic en la imagen para ampliar

Listo!!! Ahora para ingresar a la página entrar.php debemos validarnos en la página


ingreso.php, no hemos escrito nada de código PHP, todo lo hizo Dreamweaver.

Ahora vamos a terminar el programa dándole los últimos toques a la página entrar.php.

Al crear la conexión a la base de datos se crea automáticamente en todas las páginas del
sitio, pero las vinculaciones se deben crear una para cada página según se necesite. Entonces
en la página entrar.php agregamos una nueva vinculación con el signo + y escogemos “Juego
de registros (consulta)” y lo llenamos con los siguientes datos:

Clic en la imagen para ampliar

Ya sé lo que te estás preguntando ¿qué es eso de Filtro: user = Variable de sesión


MM_Username? Bien ¿recuerdas que te dije que no necesitas programar nada, pero que si
debes conocer algo de PHP? Bien, si te fijas en el código PHP que Dreamweaver creó en la
página ingreso.php te fijarás que existe lo siguiente:

//declare two session variables and assign them


$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;

Pues ahí tienes la variable MM_Username, ésta variable contiene el nombre de sesión con el


que navegarás por la página web, y el nombre de sesión es igual al usuario que tienes en la
base de datos.  Entonces en esta consulta lo que estamos haciendo es obtener el nombre de
usuario donde user (la variable que tenemos en la base de datos) sea igual a la variable
MM_Username de inicio de sesión. Pues queremos imprimir ese dato en una parte de la página
web, toma en cuenta que por esa razón en Columnas escogí Seleccionado y escogí la columna
user únicamente, pues no me interesa imprimir la columna password, sería una gran error.

Bien una vez hecha esta consulta,  ponemos el cursor donde queremos imprimir el nombre del
usuario y nos vamos al menú Insertar -> Objetos de aplicación -> Datos dinámicos -> Texto
dinámico. Nos aparece un cuadro y escogemos la consulta que acabamos de hacer:

Clic en la imagen para ampliar

Te aparecerá un cuadro que contiene la consulta PHP.

Finalmente vamos a crear el enlace para cerrar sesión. Solo ponemos el cursor donde
queremos que esté el enlace, y nos vamos al menú Insertar -> Objetos de aplicación ->
Autenticación de usuarios -> Desconectar usuario. Nos aparece una ventana y llenamos con los
siguientes parámetros:
Clic en la imagen para ampliar

Si en vez de la palabra Desconectar quieres, por ejemplo, las palabras Cerrar sesión, entonces
la escribes, la seleccionas y sigues el procedimiento anterior.

Así se ve cuando ingresas al área restringida después de validarte, en este caso como
usuario2:

Clic en la imagen para ampliar

Listo!!! Acabas de crear una página web que valida el ingreso de usuarios que están en una
base de datos de MySQL sin programar nada.

Trata de probar los demás componentes que trae el menú Insertar -> Objetos de aplicación.
Te ahorrarás mucho tiempo haciendo páginas web gracias a Dreamweaver.

Por cierto subí todos los códigos generados a esta


página:http://mygnet.net/codigos/php/manejodebasedatos/validar_ingreso_de_usuarios_con
_php_y_mysql.3046ahí los pueden descargar.

9 Votos
Ads by Google
Curso de PHP y SQL
Aprendé a programar en PHP PHP Nivel Básico y Avanzado
www.educacionit.com.ar/PHP
Web Hosting Alta Calidad
Pagando por un año obtenes 2 meses S/C y Alta en 1500 Buscadores
www.mgbhosting.com.ar/hosting
Aprender Diseño WEB Pro
Cursos Html Dream Php Flash Pro Curso Intensivo de Programación
WEB
www.capacitacionweb.com.ar/
Mesi web hosting
Un sitio seguro para su sitio. Gran servicio y soporte técnico
www.mesi.com.ar

35 COMENTARIOS »

Suscripción RSS a los comentarios de esta entrada. URI para TrackBack.

1.

Hola
tienes el codigo generado de tus archivos,
puedes pasarla?
Saludos
1
0
Califica
Comentario por Carlos — Septiembre 7, 2009 #

Responder

Los códigos los puedes descargar


enhttp://mygnet.net/codigos/php/manejodebasedatos/validar_ingreso_de_usuario
s_con_php_y_mysql.3046
2
0
Califica
Comentario por cyberexplorador — Septiembre 7, 2009 #

Responder
2.

Excelente aporte, muy dedicado… te felicito, funciona a la perfeccion.


2
0
Califica
Comentario por Neo — Septiembre 8, 2009 #

Responder

Muchas gracias, que bueno que te funcionó


0
0
Califica
Comentario por cyberexplorador — Septiembre 8, 2009 #

Responder

3.

Uf… hasta que lo encontre… gracias man… por el aporte…. ¡¡


2
0
Califica
Comentario por Edu — Septiembre 17, 2009 #

Responder

4.

hola que tal, bueno eh estado intentandio estos apso me marcas todo esta bien con la
conexion con la base de datos, el problema cuando estoy en el juego de registros para el
user y la contraseña, cuando le doy prueba me amnda un error de dreamweaver 8, me
dice ke se ha producido un erro no identificado, me aparecen mis campos en, ke son id,
user, contraseña, pero cuando lo pruebas te debe amndar los datos de esos campos y es
cuando em marca ese error, la vdd no se poruqe hace eso , espero me puedas ayudar.
1
0
Califica
Comentario por oscar — Octubre 19, 2009 #

Responder

el administrador no revisa los comentarios??


0
0
Califica
Comentario por oscar — Octubre 23, 2009 #

Responder

Me podrías capturar la pantalla del error para verla. Sube la imagen


a http://imageshack.us para verla. El tutorial que ves aquí fue hecho con
Dreamweaver 8.
0
0
Califica
Comentario por cyberexplorador — Octubre 24, 2009 #

Responder

o
http://img255.imageshack.us/img255/418/dibujovw.jpg
aki te mando la imagen del error ke me marca, yo tambien lo estoy haciendo
con dreamweaver 8, pero este error no me deja de salir
0
1
Califica
Comentario por oscar — Octubre 26, 2009 #

Realmente no sé a qué se debe el error. Puede ser con la conexión a la base de


datos. El error te da cuando presionas Aceptar o cuando presionas Prueba?
Verifica que hayas seguido los pasos en orden.
0
0
Califica
Comentario por cyberexplorador — Octubre 27, 2009 #

5.

excelente funciona a las 1000 maravillas, lo probe con el wamp y con el appserver
2
0
Califica
Comentario por jalil lararte — Octubre 27, 2009 #

Responder

no te salio un error ke dice se a producido un error no identificado?? ke


dreamweaver tienes?? y cual es el appserv ke manejas??
0
0
Califica
Comentario por oscar — Octubre 28, 2009 #

Responder

6.

segui los pasos tal y como los pones, pero el erro me sale cuando doy probar, pero si le
pongo aceptar no me da ningun error, y sigo los pasos pero cuando llego al texto
dinamico para desplegar lo ke hay en el juego de registros alli me amrca el error otra
vez
0
0
Califica
Comentario por oscar — Octubre 28, 2009 #

Responder

7.

hola que tal me sirvio de maravilla tus pasos pero ahora lo que quiero hacer es que como
tengo varios usuarios me muestre el nombre d los demas ya que entre con el usuario que
entre me pone solo el nombre del primer usuario que se encuentra en la base de datos
aunque entre con otro
0
0
Califica
Comentario por cayetano — Noviembre 2, 2009 #

Responder

8.

Hola que tal, me sirvio bastante el material, muchas felicidades. Funcionó a la


perfección, ahora el unico detalle que hay que hacer es proteger cada una de las
páginas. Gracias!
0
0
Califica
Comentario por Cesar — Noviembre 7, 2009 #

Responder

9.

ya arregle el problema era mi appserv, lo kite y puse una version anterior, peo ahora ke
ya me hace todo eso, como le pongo la accion al boton para ke al momento de dar clic
en el me valide el user y pass ke tengo?? y me manda a al sesion del usuario
0
0
Califica
Comentario por OSCAR — Noviembre 8, 2009 #

Responder

10.

Hola. He probado todo y funciona bien, pero el password no me distingue mayusculas de


minusculas. ??? Puedo haber echo algo mal?
0
0
Califica
Comentario por fer — Diciembre 8, 2009 #

Responder

Que raro, la verdad no probé eso. Pero debería distinguirlas. Voy a revisarlo.
0
0
Califica
Comentario por cyberexplorador — Diciembre 8, 2009 #

Responder

11.

Sigo el tuto paso a paso y me funciona perfectamente en modo local pero cuando subo
mi pagina a mi hostin solo puedo ver la 1º paguina cuando pulso sobre el boton ingresar
me sale el siguiente error
Fatal error: Access denied for user: ‘alexromero_es@ts18.tmm.cvsn.de’ (Using password:
NO) in
/data/members/free/tripod/es/a/l/e/alexromero/htdocs/Connections/conexion_usuari
os.php on line 9
a que es debido.
Por si sive de algo mi hostin es lycos tripod y la dire es
http://usuarios.lycos.es/alexromero
0
0
Califica
Comentario por alexromero — Diciembre 26, 2009 #

Responder

Da error en la línea 9 del archivo conexion_usuarios.php pon aquí qué hay en esa
línea para ver si te puedo ayudar.
0
0
Califica
Comentario por cyberexplorador — Diciembre 28, 2009 #

Responder

o
Ami me pasaba similar, l oque hice fue subir los archivos dependientes y subio
el de conexion’usuarios.php y listo despues mi problema ya fue otro y aun no
encuentro solucion, lo describo en la parte inferior.. jeje
0
0
Califica
Comentario por dark__warrior — Febrero 12, 2010 #

12.

Saludos, seguí todos los pasos y al ingresar el usuario y la contraseña me sale “Unknown
column ‘usuario1′ in ‘where clause’”
¿en donde me equivoqué?
0
0
Califica
Comentario por antonio — Enero 7, 2010 #

Responder

La columna usuario1 parece que no existe en la base de datos. Verifica que se llame
así, con mayúsculas y minúsculas.
0
0
Califica
Comentario por cyberexplorador — Enero 8, 2010 #

Responder

13.

Parece que la difrencia está en estas dos lineas:


las mias:
$LoginRS__query=sprintf(“SELECT `user`, password FROM usuarios WHERE `user`=%s AND
password=%s”,
GetSQLValueString($loginUsername, “-1″), GetSQLValueString($password, “text”));
las tuyas:
$LoginRS__query=sprintf(“SELECT user, password FROM usuarios WHERE user=’%s’ AND
password=’%s’”,
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername),
get_magic_quotes_gpc() ? $password : addslashes($password));
apenas empiezo, me podrías ayudar?
0
0
Califica
Comentario por antonio — Enero 7, 2010 #

Responder

Seguiste los pasos en forma ordenada. SI lo haces así no debería haber ningún
problema. Verifica que la base de datos tenga el nombre correcto, así como sus
campos.
0
0
Califica
Comentario por cyberexplorador — Enero 8, 2010 #

Responder

14.

EXCELENTE APORTACION, MUCHAS GRACIAS ME SIRVIO DE MUCHO , UNA PREGUNTA COMO


HAGO OPERACIONES CON FORMULARIOS ASI Q EN UN TEXTFIELD INGRESE 3 EN OTRO 2
ETC ETC Y QUE EN UNO Q DIGA TOTAL ME DE EL TOTAL DE TODOS, GRACIAS
0
0
Califica
Comentario por diana — Enero 27, 2010 #

Responder

Aqui explico como hacer


eso:http://cyberexplorador.wordpress.com/2009/01/23/obtener-datos-desde-
formulario-con-php-y-procesarlos/
0
0
Califica
Comentario por cyberexplorador — Enero 27, 2010 #

Responder

15.

Hola , excelente tutorial…realmente muy bueno, solo tengo una duda, mira ya hice
todooo lo que se indica
http://acsalab.com/restringe
pero resulta que al momento de ingresar el usuario y dar sumbit..o enter.. parace el
siguiente error:
Unknown column ‘usuario1′ in ‘where clause’
alguien sabe a que se refiere o a que se debe?, muchas gracias de antemano.
1
0
Califica
Comentario por dark__warrior — Febrero 9, 2010 #

Responder

o
Revisa bien la base de datos. Al parecer existe algún problema con la columna
usuario1. Recuerda además que la base de datos ya debe tener registros para que
puedas probar el ejemplo.
0
0
Califica
Comentario por cyberexplorador — Febrero 9, 2010 #

Responder

Hola, gracias por la respuesta cyber, fijate que ya revisé la base de datos,
mayusculas, minusculas, letra por letra, de hecho ya no hay tanto problema
por que la informacion la va jalando dreamweaver, tambien ingrese los datos
como se ve en el ejemplo, para user ingrese usuario1 y para password ingresé
prueba1,…lo raro tambien esta en que si pongo algun nombre o dato que no
existe..como por ejemplo en usuario pongo.. pedro y el pass: pablo, me
aparece el mismo mugre letrero en lugar de envarme a la hoja de index como
lo estoy solicitando… sta raro no?…muchas gracisa por tu tiempo =)
0
0
Califica
Comentario por dark__warrior — Febrero 12, 2010 #

16.

Esta buena la cosa y pues para gente que hasta ahora esta dando sus perimeros pasos en
Php esta de lujo.
0
0
Califica
Comentario por JuanM — Febrero 14, 2010 #

Responder
17.

Excelente tu explicación me sirvió mucho, lo hice con mi base de datos en xampp y


funciona bien, pero al pasarla al servido cundo dígito el nombre de usuario y contraseña
y le doy enviar, aparece “No database selected”, primero tenia problemas con la
conexión de la base pero lo solucione, pero esto si no lo entiendo, Te agradezco la
colaboración Gracias
0
0
Califica
Comentario por mabe_ing — Febrero 20, 2010 #

Responder

18.

Saludos, disculpen fijenseque sigo batallando con el error de: Unknown column ‘usuario1′
in ‘where clause’ , ya vi que todo este igual con mayusculas minusculas y de mas, mi
base de datos tiene como usuario permitido: usuario1 y como password: password1. el
caso es que me sale una y otra vez el error, y no me regresa a la seccion de index.php
Pero lo que acabo de observar es que solo me regresa cuando meto algun valor en
ususario y contraseña, como: 1 y 1, al poner numero si me regresa…alguien tiene idea de
por que podria pasar esto?..gracias de antemano
0
0
Califica
Comentario por dark_warrior — Marzo 4, 2010 #

Responder

PARA COMPLEMENTAR
Por cierto, con l oque cometno arriba la direccion donde se encuentra ubicado el
archivo , por si alguien me puede dar una ayuda, la cual agradecere es:
http://motacreativa.com/BDD
Realmente agradecere su apoyo pues es para un proyecto que aun no puedo sacar
adelante por ese detalle, y he buscado en otros foros pero al parecer muchos tienen
el mismo problema
0
0
Califica
Comentario por dark_warrior — Marzo 4, 2010 #

Responder

PARA COMPLEMENTAR MAS..PORFAVOR AYUDA


Acabo de realizar otra prueba…puse en el dato de mi base de datos el usuario
1 y el password 12 y me deja ingresar a la siguiente seccion, pero no puedo
ingresar con el segundo registro que es usuario: usuario2 y password:
password2…alguna idea de por que sucede esto…si trato de ingresar con el
segundo registro, nisiquiera me regresa al index, solo me marca el error.

You might also like