Crear una cuenta
 
Buscar:
:: Home  ::  Descargas  ::  Mi Cuenta  ::  Foros  ::
::  ¿Cómo moverse por esta Web? ::
Menú
 Página principal
 Descargas
 Documentación
 Enlaces Web
Quien está en Línea
Hola, Anónimo
Nickname
Password
(Regístrate)
Gente en línea:
Visitantes: 7
Miembros: 0
Total: 7
 Foros de discusión
Foros de discusiónForos de discusión    FAQFAQ    BuscarBuscar    Grupos de UsuariosGrupos de Usuarios
Gestionado por phpBB © 2001 phpBB Group. Version 2.0.6 de PHP-Nuke Port por Tom Nitzschner © 2002 www.toms-home.com
Autenticacion de usuarios (login) en PHP
Publicar nuevo tema   Responder al tema    Foros de discusión -> PHP
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Invitado






MensajePublicado: Vie Ene 23, 2004 3:45 am
 Asunto: Autenticacion de usuarios (login) en PHP
Responder Responder citando

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
Moderador


Registrado: Oct 22,2002
Mensajes: 1626

MensajePublicado: Vie Ene 23, 2004 5:21 am
 Asunto:
Responder Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor

rbarcelo
Recién llegado
Recién llegado


Registrado: Apr 03,2003
Mensajes: 2

MensajePublicado: Vie Ene 23, 2004 9:57 am
 Asunto: Gracias Justino
Responder Responder citando

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
Ver perfil de usuario Enviar mensaje privado MSN Messenger

justino
Moderador
Moderador


Registrado: Oct 22,2002
Mensajes: 1626

MensajePublicado: Vie Ene 23, 2004 4:18 pm
 Asunto:
Responder Responder citando

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&ntilde;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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor

rbarcelo
Recién llegado
Recién llegado


Registrado: Apr 03,2003
Mensajes: 2

MensajePublicado: Vie Ene 23, 2004 9:11 pm
 Asunto: Gracias de Nuevo
Responder Responder citando

Lo pruebo y te cuento como me fue.
Gracias!!!

Ramiro Barcelo
rbarcelo@psi.uba.ar
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger

carlosvera
Invitado





MensajePublicado: Vie Jul 30, 2004 7:40 am
 Asunto: login php
Responder Responder citando

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
Moderador


Registrado: Oct 22,2002
Mensajes: 1626

MensajePublicado: Vie Jul 30, 2004 4:59 pm
 Asunto:
Responder Responder citando

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 icon_sad.gif
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor

javierfurio
Recién llegado
Recién llegado


Registrado: Aug 24,2004
Mensajes: 4

MensajePublicado: Mie Ago 25, 2004 8:10 am
 Asunto: A mí me sale un mensaje de error
Responder Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger

justino
Moderador
Moderador


Registrado: Oct 22,2002
Mensajes: 1626

MensajePublicado: Mie Ago 25, 2004 5:57 pm
 Asunto:
Responder Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor

javierfurio
Recién llegado
Recién llegado


Registrado: Aug 24,2004
Mensajes: 4

MensajePublicado: Mie Ago 25, 2004 8:50 pm
 Asunto: ¿Entonces no se puede dirigir a una página en otra web?
Responder Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger

Mostrar mensajes de anteriores:   

 
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
Página 1 de 2 Ir a página 1, 2  Siguiente
 
   Portal creado con PHP-Nuke. PHP-Nuke es gratuito y está acogido a la licencia GNU/GPL.