Foros del Web » Programando para Internet » PHP »

inicio de sesion multiusuarios

Estas en el tema de inicio de sesion multiusuarios en el foro de PHP en Foros del Web. Hola, tengo una duda con respecto al inicio de sesion de usuarios multiples. no tengo nigun problema para logear usuarios, todo eso funciona bien se ...
  #1 (permalink)  
Antiguo 10/11/2009, 12:20
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
inicio de sesion multiusuarios

Hola, tengo una duda con respecto al inicio de sesion de usuarios multiples.
no tengo nigun problema para logear usuarios, todo eso funciona bien se inicia la sesion con un usuario y una contraseña que se verifica en una base de datos y si estos dos coinsiden se da acceso a otra pagina, y si no se regresa a la misma pafina pero con el mensage de error. Todo eso trabaja bien lo que no entiendo es que cuando un usuario ingresa bien sus datos y tiene acceso a la pagina que esta protegida, esta pagina no esta totalmente protegida con ese metodo, por que si uno copia el link de la pagina, cierra la pagina y pega denuevo el link en la barra de navegacion, te lleva a esa pagina sin pasar por el codigo de restriccion. Entonces no entiendo de que sirve todo ese monton de codigos si ala final la pagina puede ser vista sin ningun problema si se guarda en los faviritos o en marcadores.

porfavor expliquenme que no entiendo ya que hay paginas que esto no se puede hacer si se intenta copiar el link y pegarlo en el navegador te lleva ala pagian donde te pide el usuario y contraseña.

gracias
saludos
  #2 (permalink)  
Antiguo 10/11/2009, 12:24
Avatar de Fairy_Boy  
Fecha de Ingreso: octubre-2009
Ubicación: Kokiri Forest
Mensajes: 235
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: inicio de sesion multiusuarios

para eso debes usar las variables de session
y luego ponerla en cada una de las paginas (en el codigo)
asi no te dejara ingresar a menos k no te redireccione la pagina del login.
tan simple como poner
[PHP]
<?php
if (isset($_SESSION['k_username'])) {
//el resto del codigo a mostrar.
}else{//sino esta validado, lo redirecciona al login.
header("Location: login.php");
}
?>
[PHP]

Saludines!
  #3 (permalink)  
Antiguo 10/11/2009, 22:58
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Sonrisa Respuesta: inicio de sesion multiusuarios

gracis entendi mas o menos pero hice lo que me dices y bien la pagina no se muestra pero ese es el problema que ahora la pagina no se mustra. no entiendo.


Donde pones k_username que debo pones no entiendo por favor si me pudiera esplicar un poco mas despacio es que tu disculpa pero apenas estoy aprendiendo de php
te agradeseria
  #4 (permalink)  
Antiguo 10/11/2009, 23:10
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: inicio de sesion multiusuarios

Buenas!!

Código PHP:
<?
if (isset($_SESSION['k_username'])) { // Aqui tienes que poner lo que usas como inicio de session

// Aqui Pnes Todo tu Codigo que quieras que este protegido

}else{ //a partir de Aqui te redirecciona a donde quieras para proteger la pagina
header("Location: login.php");
}
?>
Ayudaria que pusieras tu codigo para poder orientarte mejor

un saludo!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #5 (permalink)  
Antiguo 10/11/2009, 23:29
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: inicio de sesion multiusuarios

bueno el codigo que utilizo es este
una pagina para recojer los datos de usuario y contraseña


<html>
<head>
<title>Autentificación PHP</title>
</head>
<body><table border="0" align="center" width="500" height="500" bgcolor="">
<tr>
<td bgcolor="#E9E9E9">
<form action="control.php" method="POST">
<table align="center" width="225" cellspacing="2" cellpadding="2" border="0">
<tr>
<td colspan="2" align="center"
<?if ($_GET["errorusuario"]=="si"){?>
bgcolor=red><span style="color:ffffff"><b>Datos incorrectos</b></span>
<?}else{?>
bgcolor=#cccccc>Introduce tu clave de acceso
<?}?></td>
</tr>
<tr>
<td width="121" align="right"><strong>USUARIO:</strong></td>
<td width="84"><input type="Text" name="usuario" size="12" maxlength="50"></td>
</tr>
<tr>
<td align="right"><strong>CONTRASE&Ntilde;A:</strong></td>
<td><input type="password" name="contrasena" size="12" maxlength="50"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="Submit" value="ENTRAR"></td>
</tr>
</table>


</form>
</td>
</tr>
</table>


</body>
</html>




luego uno que recoje la informacion y la compueba en la bace de datos
y me redirecciona ya sea ala pagina donde recoji los datos la cual llamo index,php o a la pagina que quiero restringir



<?
//conecto con la base de datos
$conn = mysql_connect("localhost","root","3157201200300");
//selecciono la BBDD
mysql_select_db("estudiantes",$conn);

//Sentencia SQL para buscar un usuario con esos datos
$ssql = "SELECT * FROM usuarios WHERE nombre_usuario='$usuario'and contrasena='$contrasena'";

//Ejecuto la sentencia
$rs = mysql_query($ssql,$conn);

//vemos si el usuario y contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa conbinación usuario/contraseña


if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";

header ("Location: $usuario.php");
}else {
//si no existe le mando otra vez a la portada
header("Location: index.php?errorusuario=si");
}
mysql_free_result($rs);
mysql_close($conn);
?>


ahora en la pagina que quiero restringir coloco lo que me dijiste y no me habre



<?php
session_start();

if (isset($_SESSION[‘mutay2378’]))

{echo 'Bienvenido,';
echo "<b>".$_SESSION[‘mutay2378’]."</b>.";
echo "<p><a href=\"logout.php\">Logout</a></p>.";

}else{
echo "<p><a href=\"index.php\">Login</a></p>",
"<p><a href=\"registrar.php\">Registrar</a></p>";
}

?>

no entiendo como es porfavor explicame bien
gracias por el tiempo empleado
  #6 (permalink)  
Antiguo 11/11/2009, 00:45
Avatar de zaetoner  
Fecha de Ingreso: noviembre-2007
Ubicación: La ciudad de México
Mensajes: 607
Antigüedad: 16 años, 5 meses
Puntos: 30
Respuesta: inicio de sesion multiusuarios

creo que no entenderás como usar $_session[] por un codigo, yo te recomiendo que practiques mucho haciendo scripts aparte y probandolos y claro leyendote la documentacion
__________________
...
  #7 (permalink)  
Antiguo 11/11/2009, 07:08
Avatar de Fairy_Boy  
Fecha de Ingreso: octubre-2009
Ubicación: Kokiri Forest
Mensajes: 235
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: inicio de sesion multiusuarios

mira, tengo una pagina para validar el ingreso de los usuarios, osea validar el login.
aqui le estoy dando el valor a dicha variable de sesion.
Código PHP:
<?php
//....
$usuario $_POST["usuario"];
    
$password $_POST["password"];
    
$result mysql_query('SELECT Con_Usu, Rut_Usu FROM usuarios WHERE Rut_Usu=\''.$usuario.'\'') or die("MySQL dice: ".mysql_error());
    if(
$row mysql_fetch_array($result)){
        if(
$row['Con_Usu'] == $password){
            
$_SESSION["k_username"] = $row['Rut_Usu'];
//....
?>
k_username toma el valor del row, obtenido por la query a la BD, osea la pass y el nombre de usuario, "a partir solo del nombre de usuario".
luego, en cada una de las paginas que desees restringir el acceso y redireccionar al login si
el user no esta identificado, le pones la otra parte, osea esta:
Código PHP:
<?php
session_start
();
if (isset(
$_SESSION['k_username'])) {
//tu codigo a ejecutar si esta identificado el user.
}else{
header("Location: login.php");//a esta pagina te envia si no estas logueado.
}
?>
espero te alla quedado claro ^^
Saludos!
  #8 (permalink)  
Antiguo 11/11/2009, 20:09
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: inicio de sesion multiusuarios

Ahora si entendi un poco massssssssssss muchas graciassssssss
entodo caso si tengo algun problema tu perdona pero te preguntare de nuevo.

Y de nuevo muchas gracias
  #9 (permalink)  
Antiguo 12/11/2009, 02:10
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: inicio de sesion multiusuarios

Hola soy yo denuevo pero esta ves quiero que me aclares sobre algo que estube leyendo sobre la variable $SESSION_['']. Lo que entiendo es que esa variable lo que hace es almacenar una variable, la cual puede ser utilizada en otras paginas siempre y cuando se le coloque session_start(); al comienso de la pagina ( eso es lo que estoy entendiendo tu corrijeme si me equivoco)
Lo que tu me recomendaste hacer osea colocar if (isset($SESSION_['username'])) es por que el isset sirve para verificar si lavariable (isset($SESSION_['username'])) esta definida en esa pagina osea que si esta definida me muesra la pagina si no me regresa al login.php ya que solo la variable (isset($SESSION_['username'])) estara definida cuando se inicie sesion. tu perdona si me equivoco pero eso es lo que entiendo corrijeme si me equivoco que lo que quiero es aprender.


gracias.
  #10 (permalink)  
Antiguo 12/11/2009, 06:26
Avatar de Fairy_Boy  
Fecha de Ingreso: octubre-2009
Ubicación: Kokiri Forest
Mensajes: 235
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: inicio de sesion multiusuarios

claro que sip!
estas en lo correcto.
esa es la manera de hacerlo, para evitar errores y otras cosas.
y aparte de usar "valores del usuario", en las variables de sesion
ademas puedes usarlas para variables que necesites en varias paginas
si deseas saber mas sobre eso.
te recomentaria leer algun tutorial sobre $_SESSION
Saludos!
^^
  #11 (permalink)  
Antiguo 12/11/2009, 12:06
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: inicio de sesion multiusuarios

m,uchas graciasssss
  #12 (permalink)  
Antiguo 12/11/2009, 20:16
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: inicio de sesion multiusuarios

Hola disculapa de nuevo pero tengo otro problemita.
Arregle el codigo para que se verificaran los usuarios y si es correcta la verificacion se inicia sesion (session_start) y se guardan los valores de las variables e inmediatamente se direcciona a la pagina del usuario, en la cual se verifica si la variable esta definida y si es asi me mustra el contenido de la pagina. me funciona bien. Gracias por explicarme
el problema ahora es que la sesion no se cierra cuando cierro el navegador.
Si lo cierro y habro de nuevo y le pego el link de la pagina me la muestra por que aun eta abierta la sesión (me supongo yo que es eso) y si pego el link de otro usuario diferente me muestra el contenido de la pagian con la variable que se guardo en la sesion que ya supuestamente habia cerrado.

Código PHP:
<?php
//conecto con la base de datos
$conn mysql_connect("localhost","root","3157201200300");
//selecciono la BBDD
mysql_select_db("estudiantes",$conn);




$usuario $_POST["usuario"];
    
$contrasena $_POST["contrasena"];
    
$result mysql_query('SELECT contrasena,nombre_usuario  FROM usuarios WHERE nombre_usuario=\''.$usuario.'\'') or die("MySQL dice: ".mysql_error());
    if(
$row mysql_fetch_array($result))
      
        if(
$row['contrasena'] == $contrasena){
            

           
session_start();

         
$_SESSION['usuario']=$_REQUEST['usuario'];
         
$_SESSION['clave']=$_REQUEST['contrasena'];


header("Location: $usuario.php");

}
else { 
header("Location: index.php?errorusuario=si");}

  


//....
?>
esta es la pagina del usuario

Código PHP:
<?
session_start 
();

if (isset(
$_SESSION['usuario']) ){echo "se muestra la pagina";

}

else{echo 
"no exite la variable";}
?>
Como hago para que la session se cierre cuando cierre la pagina del usuario?

Gracias.
  #13 (permalink)  
Antiguo 26/08/2014, 05:30
 
Fecha de Ingreso: febrero-2014
Ubicación: SANTO DOMINGO , REPUBLICA DOMINICANA
Mensajes: 4
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: inicio de sesion multiusuarios

session_destroy();
$parametros_cookies = session_get_cookie_params();
setcookie(session_name(),0,1,$parametros_cookies["path"]);
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 02:31.