 |
Foros de discusión -> PHP |
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Invitado
|
Publicado: Vie Ene 23, 2004 3:45 am Asunto: Autenticacion de usuarios (login) en PHP |
|
|
Hola Gente del Foro:
Estoy necesitando poder crear una autenticacion de usuarios en un sitio donde coloco on line algunos trabajos de clientes.
Me gustaría poder enviarle a cada cliente un usuario y un password para que al colocarlos en el sitio sean enviados directamente a una página donde está su propio contenido.
Es posible hacer eso, el servidor donde tengo el hosting tiene PHP, Mysql y CGI.
Gracias |
|
| Volver arriba |
|
 |
|
justino Moderador


Registrado: Oct 22,2002 Mensajes: 1626
|
Publicado: Vie Ene 23, 2004 5:21 am Asunto: |
|
|
Hola,
La forma mas simple es que crees un directorio y que en él pongas este php como index.php
| Código: |
<?php
// crear una línea para cada usuario... $usuario["usuari"]="password";
$usuario["jose"]="elpassworddejose";
if (!isset($PHP_AUTH_USER) || !isset($PHP_AUTH_PW)) {
header('WWW-Authenticate: Basic Realm="Direcorio de clientes"');
header('HTTP/1.0 401 Unauthorized');
echo "<p style=\"color:red\">No estás; autoritzado $PHP_AUTH_USER</p>";
exit;
} else {
if ($usuario[$PHP_AUTH_USER] != $PHP_AUTH_PW) {
header('WWW-Authenticate: Basic realm="Directorio de clientes"');
header('HTTP/1.0 401 Unauthorized');
echo "<p style=\"color:red\">Usuario $_SERVER[PHP_AUTH_USER] o password $_SERVER[PHP_AUTH_PW] erróneos !</p>";
exit;
}
}
// Ir poniendo las paginas que deben cargarse para cada usuario
switch ($PHP_AUTH_USER){
case "jose":
$pagina="pg345890.html";
break;
}
print implode("\n",file($pagina));
?>
|
|
No es una maravilla en seguridad pero puede servir |
|
| Volver arriba |
|
 |
|
rbarcelo Recién llegado

Registrado: Apr 03,2003 Mensajes: 2
|
Publicado: Vie Ene 23, 2004 9:57 am Asunto: Gracias Justino |
|
|
Es loq que estaba precisando, perfecto, no necesito una gran seguridad, simplemente necesito que los clientes entre si no vean los proyectos en los que esta cada uno.
Asi que asi esta bien.
Lo unico que querria saber es si existe la posibilidad de hacer que en vez de que aparezca un pop up de autenticacion, yo pueda incluir dentro de una pagina normal que aparezca en el browser un campo de login y de usuario para que el cliente al entrar en mi home, vea que ademas del contenido tenga la posibilidad de loguearse y vea un contenido exclusivo para el.
Desde ya la respuesta anterior Me sirve, esto es en realidad una sofisticacion que si se puede me vendria mejor aún.
Gracias nuevamente,y la verdad es que vengo siguiendo tu trabajo desde hace años y me pruduce una suerte de envidia ver que aún encuentras tiempo para ayudar a la gente.
Gracias de nuevo Justino.
Ramiro Barceló
rbarcelo@psi.uba.ar |
|
| Volver arriba |
|
 |
|
justino Moderador


Registrado: Oct 22,2002 Mensajes: 1626
|
Publicado: Vie Ene 23, 2004 4:18 pm Asunto: |
|
|
Si podria ser algo asi...
(Aunque habria que poner un control de errores, etc)
| Código: |
<?php
// crear una línea para cada usuario... $usuario["usuari"]="password";
$usuario["jose"]="elpassworddejose";
if ((isset($username))&&(isset($contras))){
$PHP_AUTH_USER=$username;
$PHP_AUTH_PW=$contras;
}
if (!isset($PHP_AUTH_USER) || !isset($PHP_AUTH_PW)) {
?>
<html>
<body>
<form method="POST" action="<?=$PHP_SELF?>">
Usuario:<input type="text" name="username" value=""><br>
Contraseña:<input type="password" name="contras" value=""><br>
<input type="submit" value="Entrar">
</form>
</body>
</html>
<?php
exit;
header('WWW-Authenticate: Basic Realm="Direcorio de clientes"');
header('HTTP/1.0 401 Unauthorized');
echo "<p style=\"color:red\">No estás; autoritzado $PHP_AUTH_USER</p>";
exit;
} else {
if ($usuario[$PHP_AUTH_USER] != $PHP_AUTH_PW) {
header('WWW-Authenticate: Basic realm="Directorio de clientes"');
header('HTTP/1.0 401 Unauthorized');
echo "<p style=\"color:red\">Usuario $_SERVER[PHP_AUTH_USER] o password $_SERVER[PHP_AUTH_PW] erróneos !</p>";
exit;
}
}
// Ir poniendo las paginas que deben cargarse para cada usuario
switch ($PHP_AUTH_USER){
case "jose":
$pagina="pg345890.html";
break;
}
print implode("\n",file($pagina));
?>
|
|
|
|
| Volver arriba |
|
 |
|
rbarcelo Recién llegado

Registrado: Apr 03,2003 Mensajes: 2
|
Publicado: Vie Ene 23, 2004 9:11 pm Asunto: Gracias de Nuevo |
|
|
Lo pruebo y te cuento como me fue.
Gracias!!!
Ramiro Barcelo
rbarcelo@psi.uba.ar |
|
| Volver arriba |
|
 |
|
carlosvera Invitado
|
Publicado: Vie Jul 30, 2004 7:40 am Asunto: login php |
|
|
YO LO GUARDE ESE CODIGO EN BLOCK DE NOTAS CON LA EXTENSION PHP3
Y NO SE ABRIO NINGUN POP UP
Y CUANDO LO GUARDE EN BLOCK DE NOTAS CON LA EXTENSION PHP SE ABRI EL POP UP ,DE HECHO CON ESTA EXTENSION NO ME SIRVIO PORQUE NO ADMITIA AL USUARIO AUN PONIENDO LA CONTRASEÑA CORRECTA ,.
LA VERDAD ESQUE SOY NUEVO EN PHP ,.ME GUSTARIA PORFAVOR JUSTINO ,.ME DIJIERA COMO VAN LAS LINEAS DE LOS USUARIOS Y PAGINAS POR LO MENOS DE UNOS 3 LOS DEMAS LOS HAGO YO,.PORFAVOR
veper_2000@hotmail.com
POSDATA PORFAVOR SI NO ES MUCHA MOLESTIA COMO PUEDO TENER A MIS USUARIOS EN REGISTRO ASI COMO USTED
SUPONGO ES CON BASE DE DATOS MSQL PERO NO SE COMO HACERLO O ALGUN CODIGO. |
|
| Volver arriba |
|
 |
|
justino Moderador


Registrado: Oct 22,2002 Mensajes: 1626
|
Publicado: Vie Jul 30, 2004 4:59 pm Asunto: |
|
|
php3 es una extension ya obsoleta (la version actual de php es la 5) ahora la extension reconocida por los servidores web suele ser simplemente .php
En el ejemplo el nombre de usuario es "jose" y el password es "elpasworddejose" para añadir usuarios solo tienes que añadir nuevos
| Código: |
$usuario["jose"]="elpassworddejose";
$usuario["pepe"]="mipass";
|
|
y poner mas "case"...
| Código: |
switch ($PHP_AUTH_USER){
case "jose":
$pagina="pg345890.html";
break;
case "pepe":
$pagina="lapaginadepepe.html";
break;
}
|
|
En cuanto al registro y autentificacion de usuarios mediante Mysql y php no es dificil
pero no es cosa de 3 lineas  |
|
| Volver arriba |
|
 |
|
javierfurio Recién llegado


Registrado: Aug 24,2004 Mensajes: 4
|
Publicado: Mie Ago 25, 2004 8:10 am Asunto: A mí me sale un mensaje de error |
|
|
Estimado Justino:
Como verás, soy nuevo en esta plaza. Más que nuevo, acabo de introducirme en el mundo del PHP y MySQL y la verdad es que ando un poco perdido.
He utilizado el código que publicabas aquí porque precisamente necesito re-dirigir a mis usuarios a distintas páginas (incluso en diferentes dominios).
He seguido tus instrucciones con 3 usuarios (3 URL's diferentes pero en la misma página web) para probar, pero me sale el siguiente mensaje de error al intentar loguear a cualquiera de ellos:
Warning: Unable to access ../../bocetos/fela/index.htm in /home/html/clientes/login.php on line 51
Warning: file("../../bocetos/fela/index.htm") - No such file or directory in /home/html/clientes/login.php on line 51
Warning: Bad arguments to implode() in /home/html/clientes/login.php on line 51
En un primer momento he pensado que podría ser porque hay que poner direcciones absolutas y no relativas, pero me sigue saliendo el mismo mensaje de error.
¿Me podrías ayudar? ¿Qué puede haber pasado? _________________ Soy un torponcillo que acaba de comenzar en esto del PHP y el MySQL. Sed comprensivos conmigo... Ya aprenderé... |
|
| Volver arriba |
|
 |
|
justino Moderador


Registrado: Oct 22,2002 Mensajes: 1626
|
Publicado: Mie Ago 25, 2004 5:57 pm Asunto: |
|
|
Hola,
El error esta en que el php no puede acceder a "../../bocetos/fela/index.htm"
posiblemente porque esa ruta no es correcta....
Prueba a poner una pagina "prueba.htm" en el mismo directorio en el que se encuentre el php y haz $pagina="prueba.htm" Si esto funciona entonces es que hay algun problema con la ruta... |
|
| Volver arriba |
|
 |
|
javierfurio Recién llegado


Registrado: Aug 24,2004 Mensajes: 4
|
Publicado: Mie Ago 25, 2004 8:50 pm Asunto: ¿Entonces no se puede dirigir a una página en otra web? |
|
|
Hola, Justino:
Muchas gracias por tu rápida respuesta. Entiendo lo que me dices, pero entonces ¿no puedo dirigir a los usuarios a una página que esté en otro directorio, o incluso en otra web (con otro dominio y eso)?
Para hacer las pruebas, como te comenté, intenté dirigir a los usuarios a páginas que, aunque están en otros directorios, sí se encuentran en el mismo espacio web que la propia página de logueo.
He comprobado las rutas y están correctas. Eso sí, he intentado poner rutas del tipo "http://www.letraaletra.com/bocetos/fela/index.htm" y me da el mismo error. Igual es problema de sintaxis, como aún soy un torpe novato (soy consciente de ello)...
Es que verás, entre un compañero y yo hemos creado una zona privada, consistente en un panel de actualización de contenidos, para cada uno de nuestros usuarios y claro, algunas de ellas no están ni siquiera en el mismo dominio. Cambiarlas todas a la misma carpeta sería un follón que ni te cuento (traslado de Bases de Datos, cambios de rutas en sus respectivos códigos PHP, etc.). Por eso quería poner un sistema que les permitiera acceder, con una sola página de logueo, a cada usuario a su zona privada.
¿Qué me dices? Gracias por tu ayuda. _________________ Soy un torponcillo que acaba de comenzar en esto del PHP y el MySQL. Sed comprensivos conmigo... Ya aprenderé... |
|
| Volver arriba |
|
 |
|
|
|
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
|
|