Page 1
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
Page 2
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í:
Page 3
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:
Page 4
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):
Page 5
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.
Page 6
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
Page 7
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.
Page 8
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.
Page 9
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
Page 10
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:
Page 11
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_co
n_php_y_mysql.3046ahí los pueden descargar.
9 VotosAds by GoogleCurso de PHP y SQLAprendé a programar en PHP PHP Nivel Básico y Avanzadowww.educacionit.com.ar/PHPWeb Hosting Alta CalidadPagando por un año obtenes 2 meses S/C y Alta en 1500 Buscadoreswww.mgbhosting.com.ar/hostingAprender Diseño WEB ProCursos Html Dream Php Flash Pro Curso Intensivo de Programación WEBwww.capacitacionweb.com.ar/Mesi web hostingUn sitio seguro para su sitio. Gran servicio y soporte técnicowww.mesi.com.ar
Page 12
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
o
Los códigos los puedes descargar
e
nhttp://mygnet.net/codigos/php/manejodebasedatos/validar_ingreso_de_us
uarios_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
Page 13
Califica
Comentario por Neo — Septiembre 8, 2009 #
Responder
o
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
Page 14
Califica
Comentario por oscar — Octubre 19, 2009 #
Responder
o
el administrador no revisa los comentarios??
0
0
Califica
Comentario por oscar — Octubre 23, 2009 #
Responder
o
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 #
Page 15
o
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
o
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.
Page 16
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
Page 17
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
o
Que raro, la verdad no probé eso. Pero debería distinguirlas. Voy a
revisarlo.
0
0
Califica
Comentario por cyberexplorador — Diciembre 8, 2009 #
Responder
Page 18
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: ‘[email protected] ’ (Using
password: NO) in
/data/members/free/tripod/es/a/l/e/alexromero/htdocs/Connections/conexion_us
uarios.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
o
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
Page 19
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
o
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
Page 20
`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
o
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
Page 21
Califica
Comentario por diana — Enero 27, 2010 #
Responder
o
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
Page 22
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
o
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
Page 23
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
o
PARA COMPLEMENTAR
Por cierto, con l oque cometno arriba la direccion donde se encuentra
Page 24
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
o
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.