php+sesiones

acardona
15 de Noviembre del 2005
hola a todos
como hago para que un usuario que inicia sesion en un pc, y la deja iniciada, no pueda iniciarla en otro pc,
nota: ya lo hize por bases de datos, pero cuando el usuario no cierra sesion, pero si la pagina, este queda registrado en la bd, por lo tanto no puede iniciar session.

ralequi
15 de Noviembre del 2005
sugiero que guardes la IP en la DB para q solo pueda inciar desde ese PC, lo malo es que deves dejar claro que si es un ordenador de una ciber cierre sesion, pues no podra hacer nada, si optas por la IP aqui tienes un codigo q me baje (funciona)

<?php
if ($_SERVER) {
if ( $_SERVER[HTTP_X_FORWARDED_FOR] ) {
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif ( $_SERVER["HTTP_CLIENT_IP"] ) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
$realip = getenv( 'HTTP_X_FORWARDED_FOR' );
} elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
$realip = getenv( 'HTTP_CLIENT_IP' );
} else {
$realip = getenv( 'REMOTE_ADDR' );
}
}
print("$realip");//la IP se guerda en $realip
?>

la 2º opcion es hacerlo por cookies, seria igual, solo podria acceder el que tubiera una cookie con el permiso, si optas por esta opcion, pon este codigo encima de la pagina (lo malo es que hay q recargar(o ir a otra pag) una vez para poder leerla)

setcookie ("Nombre de la cookie", "su valor", time () + 604800);// el numero604800 equivale a los segundos que se guardara en el PC

PD: espero que te aya aydado!