Foros del Web » Programando para Internet » PHP »

Mostrar Usuario registrado automaticamente

Estas en el tema de Mostrar Usuario registrado automaticamente en el foro de PHP en Foros del Web. Hola a todos, bueno soy nuevo aqui y tengo un problema.. que la verdad nose ni como empezarlo. Tengo hecha una pagina sobre el control ...
  #1 (permalink)  
Antiguo 13/05/2008, 03:14
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 15 años, 11 meses
Puntos: 0
Mostrar Usuario registrado automaticamente

Hola a todos, bueno soy nuevo aqui y tengo un problema.. que la verdad nose ni como empezarlo.

Tengo hecha una pagina sobre el control de horario que consta de lo siguiente:
un campo para usuario, otro para contraseña, uno de fecha, otro de hora y una lista desplegable en la que se selecciona el tipo de acción a realizar por ejemplo inicio de jornada. y un boton aceptar para validar todo.

Lo que tengo que hacer es que al entrar en la página de control de horario salga ya escrito el usuario por ejemplo yo entro desde este ordenador osea el mio a la pagina de control y ya tiene que salirme mi usuario, si el de a lado mio entra desde su ordenador a la pagina tiene que salirle su usuario, y asi con todos y tambien yo entro a la pagina y ya tiene que estar mi usuario escrito y ademas ya no tiene que hacer falta el meter la contraseña, osea yo entro desde mi ordenador y solo seleccionaria alguna opcion de la lista desplegable y le daria al boton aceptar sin tener que meter mi contraseña, nose si me entiendan lo que tengo que hacer..

Tambien que por ejemplo si viene otra persona y entra a la pagina desde mi ordenador y pone su usuario y le da a aceptar tiene que pedirle la contraseña y si no la pone y le da aceptar tiene que darle error y pedirle la contraseña hasta que introduzca la contraseña.

Si me pueden ayudar con esto que lo necesito urgente XFA...
Gracias Anticipadas!!!
  #2 (permalink)  
Antiguo 13/05/2008, 03:19
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Ayuda con PHP

Lo de poner El usuario y las contraseñas, se encarga el explorador, no el usuario,

Lo unico que se me ocurre es, que la primera vez que se metan en la pagina y se registren ( osea, qndo crean su usuario ) , obtener la IP de ese Equipo y asociarla al usuario y contraseña.

En el formulario de entrada comprobar la IP, buscarla en el Form y rellenar los datos.


Eso funcionaria siempre y cuando el Equipo no tuviera una IP dinamica, aunq parece q no hay problema para eso, ya que he deducido que seria una Intranet o red local.

Para coger la Ip del usuario creo que era

<?php

$ip = $_SERVER['REMOTE_ADDR']

?>
__________________
» Presupuesto Pagina Web
  #3 (permalink)  
Antiguo 13/05/2008, 03:59
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Ayuda con PHP

Hola Misko gracias por la respuesta tan rapida pero lo que pasa es que las personas que entran ya no tiene que registrarse, porque yo tengo guardados todos los usuarios y contraseñas en la base de datos, lo guarde en una tabla de usuarios en mysql.
Los que entran solo tiene que rellenar los datos eso si si entran desde su ordenador ya tiene que estar su usuario..

Osea los que entran en la pagina si entran desde su ordenador solo tienen que elegir una opcion y dar al boton de aceptar porque el usuario ya tiene que estar escrito y tampoco tendria que hacer falta meter la contraseña.

Y si entra una persona desde otro ordenador que no es el suyo tiene que poner usuario y contraseña.

Gracias Misko si me puedes ayudar con esto...
  #4 (permalink)  
Antiguo 13/05/2008, 04:37
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Ayuda con PHP

Pues seria modificar la base de datos para añadir el CAMPO ip, y te tokaria meter A MANO, a cada usuario la IP de su ordenador.....

Si no tienen q identificarse, Az una funcion que lo que haga sea determinar si esa IP esta dentro ya de la base de datos.

Si no lo esta, que muestre por pantaya algo asi :

Es la primera vez que accede desde este ordenador, inserte su usuario. Y Aki asignarias a su Usuario la IP de ahora,

Si la ip ya se encuentra en el sistema, directamente que tomara el user y password de la base de datos.

Si tienes 10 ekipos, te sale mejor meterlo a mano, si tienes 1000 ekipos en la red, pues como q no te da para meter a mano no? xD
__________________
» Presupuesto Pagina Web
  #5 (permalink)  
Antiguo 13/05/2008, 05:06
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Ayuda con PHP

No creo que son como maximo 20 equipos no son muchos.. asi que puedo hacerlo manualmente.
Y como haria todo eso?
Porque nose como hacerlo, ayudame plis
Muchas gracias por la información
  #6 (permalink)  
Antiguo 13/05/2008, 05:21
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Ayuda con PHP

weno,la parte de SQl supongo q la conoces, creas un campo mas en la tabla de usuarios y passwords que sea IP

luego en la pagina principal seria

<?php

$IP = $_SERVER['REMOTE_ADDR'] ;

$qry = mysql_query("Select user from usuarios where ip='$IP'") ;
$qry2 = mysql_query("Select password from usuarios where ip='$IP'") ;

$user = mysql_result($qry,0) ;
$password = mysql_result($qry2,0) ;

?>

con esto ya tendrias los datos del user y la password xD luego ya seria pasarselos al html ^_^
__________________
» Presupuesto Pagina Web
  #7 (permalink)  
Antiguo 13/05/2008, 05:21
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: Ayuda con PHP

Y luego hablan de páginas inseguras, etc

La forma de hacer esto es usando cookies, almacenas los datos de sesión en una cookie en el equipo cliente y cuando este carga la página la lees.

EN LA COOKIE NUNCA SE DEBE ALMACENAR NI EL NOMBRE DE USUARIO NI LA CONTRASEÑA, así que utiliza identificadores de sesion o codigos que cambien en cada sesión o algo que se te ocurra.

PHP trabaja con las cookies como si de una variable GET, POST, etc se tratase, así que no te debe resultar complicado.

Funciones:
set cookie
get cookie
  #8 (permalink)  
Antiguo 13/05/2008, 05:44
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Ayuda con PHP

Hola mgusdl porque seria inseguro hacer como dice misko?

No entiendo lo de almacenar los datos de sesion en el equipo cliente(que quiere decir eso)
  #9 (permalink)  
Antiguo 13/05/2008, 05:54
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: Ayuda con PHP

Buenas
Obviamente tu aplicación lo que trata es hacer más cómoda las cosas. Cuanto más accesible es algo, también será menos seguro. Es como si dejas las llaves de tu vehículo puestas: es más cómodo porque no tienes que andar cargando con ellas ni buscar en qué bolsillo la has puesto, pero cualquier otra persona podrá hacer uso del vehículo.
Lo que veo es que basas la seguridad en la "buena fe" de los usuarios, ya que cualquiera se puede hacer pasar por otro y además se lo pones a huevo.

Cuando haces la discriminación por IP he de entender que se trata de una LAN (red local) en la que las máquinas siempre tienen la misma dirección IP.

Pienso que la forma de equilibrar seguridad y facilidad de acceso es cambiar el sistema de usuario/contraseña por uno de código único, por ejemplo que el usuario tenga que poner el numero de su documento de identidad, de forma que queda identificado de forma única y además se guardará de que otros sepan su código.
  #10 (permalink)  
Antiguo 13/05/2008, 05:57
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: Ayuda con PHP

Cita:
Iniciado por javy01 Ver Mensaje
Hola mgusdl porque seria inseguro hacer como dice misko?

No entiendo lo de almacenar los datos de sesion en el equipo cliente(que quiere decir eso)
Joven padawan, te queda mucho que aprender

Me refería a que puedes guardar datos en el programa navegador (IE, FF, etc) usando cookies, pero que estos datos no sean privados o que aparentemente no tengan importancia, sino que sean referencias a otros datos (id de sesión o similiar).

La seguridad es importante.
  #11 (permalink)  
Antiguo 13/05/2008, 06:19
 
Fecha de Ingreso: noviembre-2003
Mensajes: 301
Antigüedad: 20 años, 5 meses
Puntos: 2
Re: Ayuda con PHP

Como ya te han dicho, veo tu aplicación no un poco, sino totalmente insegura. Tampoco termino de entender una cosa... en caso de que otro usuario se coloque en tu equipo, ¿como sabes que es otro usuario y no tu? Es decir, de normal la aplicación ya entra con los datos del usuario habitual del equipo. ¿Cómo distingue tu aplicación que el usuario es el habitual o no si no pides usuario y contraseña?

No sé, si es un aplicación que no va a manejar datos confidenciales puedes seguir con tu planteamiento, pero si manejas datos 'serios' y a los que no puedan acceder todos los usuarios, yo replantearía el diseño de la aplicación.

Un saludo
__________________
Ecología y solidaridad
  #12 (permalink)  
Antiguo 13/05/2008, 07:19
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Ayuda con PHP

mgus, d toda formas, lo que yo he dixo, no es guardar los datos en las cookies ni en la session, no guardo los datos del cliente.

Yo lo que he hecho a sido clasificar la makina por ip, y eso, proponiendo lo que el propone, es lo mas seguro que hay.

Asi que no me digas nada, ni de cookies, ni de sesiones, q no las nombro
__________________
» Presupuesto Pagina Web
  #13 (permalink)  
Antiguo 13/05/2008, 07:58
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Ayuda con PHP

gracias por todas las opiniones y ayudas, pero todavia nose ni como empezar necesito hacerlo ya...
si me pueden ayudar sea con ip o con cookies o lo que sea porfa...
si me podeis ayudar con codigo o algo...
  #14 (permalink)  
Antiguo 13/05/2008, 08:03
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: Ayuda con PHP

Cita:
Iniciado por miSko Ver Mensaje
mgus, d toda formas, lo que yo he dixo, no es guardar los datos en las cookies ni en la session, no guardo los datos del cliente.

Yo lo que he hecho a sido clasificar la makina por ip, y eso, proponiendo lo que el propone, es lo mas seguro que hay.

Asi que no me digas nada, ni de cookies, ni de sesiones, q no las nombro
Misko, yo sólo aportaba otra solución, algo más segura.
En cuanto a "es lo más seguro que hay", ni de coña
Qué impide que otra persona use el computador y le de a aceptar y entre como si fuese el usuario del equipo?
O peor aún, qué impide que alguien cambie la IP de su equipo mientras el otro está apagado?? Habría que ver el planteamiento de privilegios que hay en el sistema, si es un dominio Active Directory, si los usuarios tienen privilegios para modificar la configuracion del computador, etc...

La seguridad depende de muchos factores, sólo hay que escoger el más equilibrado entre usabilidad/seguridad en función de la importancia de los datos a manejar.

Y no te lo tomes a ofensa porque aquí estamos para ayudarnos unos a otros, no para pisotearnos. Para eso ya están los políticos.

Última edición por mgusdl; 13/05/2008 a las 08:09
  #15 (permalink)  
Antiguo 13/05/2008, 08:12
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Ayuda con PHP

por eso mi frase de " es lo mas seguro que hay "

lo he matizado con

"proponiendo lo que el propone"

;)
__________________
» Presupuesto Pagina Web
  #16 (permalink)  
Antiguo 13/05/2008, 08:21
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: Ayuda con PHP

Pues ala, resumimos:

- Misko propone que almacenes las IP de cada equipo en el que se sienta el personal y partas de ahí.
- Yo propongo que uses un identificativo único en lugar de usuario y clave, y que no lo recuerdes, sino que tenga que introducirlo cada vez que vaya a usar la aplicacion.

En cuanto a ponerte código, un inicio de sesión normal y corriente no son muchas líneas
Código PHP:
<?php
session_start
();
if (!isset(
$_SESSION['uid'])) {
    if (isset(
$_POST['usuario']) {
    
$usr intval($_POST['usuario']); //suponiendo que sea un codigo numerico, si no habria que limpiar mas
   
$q mysql_query("SELECT id FROM usuarios WHERE codigo=$usr")
   if (
mysql_num_rows($q) == 1) {
       
$r mysql_fetch_row($q);
       
$_SESSION['uid'] = $r[0];
       }
    }
   else {
?>
<form method="post" name="" action="#">
    <label for="usuario">C&oacute;digo:</label>
    <input type="text" name="usuario" id="usuario">
    <input type="submit" value="acceder">
</form>
<?php } } else { ?>
<div>Bienevenido profesor Falken, le apetece una partidita?</div>
<?php ?>

Última edición por mgusdl; 13/05/2008 a las 08:26 Razón: puto TAB....
  #17 (permalink)  
Antiguo 13/05/2008, 08:51
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Ayuda con PHP

Esa pelicula es la ostia ;) ;)
__________________
» Presupuesto Pagina Web
  #18 (permalink)  
Antiguo 13/05/2008, 09:31
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Ayuda con PHP

mgusdl pero este codigo que acabas de poner para que es?
lo mas seguro y mas facil seria que cada que entren a la pagina tengan que introducir usuario y contraseña pero a mi me dijeron que quieren asi como les he puesto antes, asi que si me explicas lo de ese codigo y me ayudan con lo que tengo que hacer les estaria muy agradecido.
  #19 (permalink)  
Antiguo 13/05/2008, 09:40
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: Ayuda con PHP

Bueno, el codigo ese es autenticación mediante código único. Para hacerlo con usuario y contraseña sólo hay que añadir un campo más.
Código PHP:
<?php
session_start
();
if (!isset(
$_SESSION['uid'])) {
    if (isset(
$_POST['usuario'])) && isset(isset($_POST['clave'])) {
       
$usr trim($_POST['usuario']);
       
$pwd trim($_POST['clave']);
       
$q mysql_query("SELECT id, clave FROM usuarios WHERE nombre='$usr'")
       if (
mysql_num_rows($q) == 1) {
           
$r mysql_fetch_row($q);
           if (
strcmp($r[1], $pwd) == 0$_SESSION['uid'] = $r[0];
           else echo 
"<div>esa clave que ha introducido no vale ni para comprar pipas</div>";
          }
       else echo 
"<div>usuario no encontrado, desea que busque debajo de la mesa?</div>";
       }
   else {
?>
<form method="post" name="" action="#">
    <label for="usuario">Usuario:</label>
    <input type="text" name="usuario" id="usuario"><br>
    <label for="clave">Clave::</label>
    <input type="password" name="clave" id="clave"><br>
    <input type="submit" value="acceder">
</form>
<?php } } else { ?>
<div>Bienevenido profesor Falken, le apetece una partidita?</div>
<?php ?>
Bueno, a eso sólo hay que añadir la limpieza de variables para prevenir SQLInjection, yo sólo le he quitado los espacios de principio y final.
  #20 (permalink)  
Antiguo 13/05/2008, 09:59
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Ayuda con PHP

y apra que quiero yo autentificar nada?
Yo lo que quiero es que al entrar me ponga el usuario de ese equipo y que no tenga que introducir su contraseña
  #21 (permalink)  
Antiguo 13/05/2008, 10:02
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: Ayuda con PHP

Y no es más facil darle a "recordar contraseña" en el navegador??? XD
  #22 (permalink)  
Antiguo 13/05/2008, 10:09
 
Fecha de Ingreso: noviembre-2003
Mensajes: 301
Antigüedad: 20 años, 5 meses
Puntos: 2
Re: Ayuda con PHP

Pues entonces recoge la ip como te ha dicho miSko, la buscas en la tabla de la BD y guarda el usuario que la tenga asociada en $user por ejemplo, y con $user ya muestras los datos que tengas que mostrar, ya sea consultando en otra tabla de usuario/datos o como lo tengas guardado.

Así lo puedes hacer, claro, pero cualquier usuario que se conecte desde el pc con ip 192.168.1.34, por ejemplo, va a ver los datos asociados a esa ip, sea su usuario habitual o no.
__________________
Ecología y solidaridad

Última edición por Deneb; 13/05/2008 a las 10:39
  #23 (permalink)  
Antiguo 14/05/2008, 04:43
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Mostrar Usuario registrado automaticamente

MGUSDL en este codigo que me pusiste tu, con este codigo me guarda el usuario y la contraseña?

<?php
session_start();
if (!isset($_SESSION['uid'])) {
if (isset($_POST['usuario']) {
$usr = intval($_POST['usuario']); //suponiendo que sea un codigo numerico, si no habria que limpiar mas
$q = mysql_query("SELECT id FROM usuarios WHERE codigo=$usr")
if (mysql_num_rows($q) == 1) {
$r = mysql_fetch_row($q);
$_SESSION['uid'] = $r[0];
}
}
else {
?>
<form method="post" name="" action="#">
<label for="usuario">C&oacute;digo:</label>
<input type="text" name="usuario" id="usuario">
<input type="submit" value="acceder">
</form>
<?php } } else { ?>
<div>Bienevenido profesor Falken, le apetece una partidita?</div>
<?php } ?>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:44.