Foros del Web » Programando para Internet » PHP »

sesiones en php (sesiones independenientes)

Estas en el tema de sesiones en php (sesiones independenientes) en el foro de PHP en Foros del Web. Bueno he creado un sistema para registrar usuarios (luego les crea su pagina(tipo perfil) ejemplo me registro "usuario1" y registro otro "usuario2" he creado ya ...
  #1 (permalink)  
Antiguo 07/11/2012, 12:08
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
sesiones en php (sesiones independenientes)

Bueno he creado un sistema para registrar usuarios (luego les crea su pagina(tipo perfil)

ejemplo me registro "usuario1"
y registro otro "usuario2"

he creado ya dos perfiles .

pero el proble es que si inicio sesion ejemplo "usuario1" me redireciona a su pagina(tipo perfil)

pero si ingreso en la url el link del perfil "usuario2" me permite ingresar a sus opciones aunqe haya iniciado sesion en "usuario1"

es decir al iniciar sesion abre a todas las sesiones y o perfiles
y si le doy salir( destruir ) sesion en el "usuario1" cierra todas la sesiones..

como puedo hacer para que al abrir "usuario1" no se abran los demas en este caso("usuario2")?

GRACIAS!
  #2 (permalink)  
Antiguo 07/11/2012, 12:12
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: sesiones en php (sesiones independenientes)

que tal una simple comprobacion?
Código PHP:
Ver original
  1. if($usuarioactual==$usuariodelperfil){
  2.  
  3. echo "Este perfil es tuyo";
  4.  
  5. }else{
  6.  
  7. echo "Este perfil no es tuyo";
  8.  
  9. }
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #3 (permalink)  
Antiguo 07/11/2012, 12:12
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: sesiones en php (sesiones independenientes)

Una sesión no puede interferir con otra, algo estás implementando mal.

Si muestras tu código de cómo validas la sesión, se te podrá ayudar mejor.
  #4 (permalink)  
Antiguo 07/11/2012, 12:18
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: sesiones en php (sesiones independenientes)

despues de iniciar sesion redirecciono a este

<?php

include("conexion.php");
session_start($_POST['user']);
$re = ''.$_POST['user'].'/'.'index='.$_POST['user'].'.php';
if(isset($_POST['user']) && !empty($_POST['user'])
&& isset($_POST['pw']) &&!empty($_POST['pw']))

{
$con=mysql_connect($host,$user,$pw) or die("problemas con server");
mysql_select_db($db,$con) or die ("probelmas con DB");

$sel=mysql_query("SELECT USER,PW FROM registro WHERE USER='$_POST[user]'",$con);

$sesion=mysql_fetch_array($sel);

if($_POST['pw']== $sesion['PW']){
$_SESSION['username'] = $_POST['user'];
echo "sesion exitosa";
}
else{echo "error vuelve a intentarloee";}}

else{echo "debes llenar ambos camos";}

?>

// si esto es correcto eh inicia secion redirecciono a este(el perfil)

<?php

include ('verificar.php');
include ('conexion.php');
session_start($_POST['user']);



?>

sigue codigo html...


y en la pagina destruir tengo esto

<?php
include('conexion.php');
include('verificar.php');
session_start($_POST['user']);

session_destroy();
echo "Tu session fue cerrada exitosamente, Vuelve pronto!";




?>

la verdad soy novato en php asi que si me pueden ayudar gracias !
  #5 (permalink)  
Antiguo 07/11/2012, 12:42
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: sesiones en php (sesiones independenientes)

Bueno, por principio de cuentas, lo recomendable es colocar session_start() como primer linea de código después de <?php

Luego, session_start no necesita que le pases ningún parámetro.

No has mostrado cómo validas la sesión, para mostrarle al usuario unos datos u otros según se perfil.

Finalmente, para destruir la sesión no necesitas incluir nada, con esto sería suficiente:


<?php
session_destroy();
echo "Tu session fue cerrada exitosamente, Vuelve pronto!";
?>
  #6 (permalink)  
Antiguo 07/11/2012, 12:51
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: sesiones en php (sesiones independenientes)

bueno al iniciar sesion

<?php

include ('verificar.php');
include ('conexion.php');
session_start($_POST['user']);



?>

sigue codigo html...

// empiezo php dentro de ese html



<?php
if(isset($_SESSION['username'])){


echo "<div id=\"menu\" align=\"middle\">

<ul >
<li ><a href=\"bio.php\">Home</a></li>
<li ><a href=\"#\" >FORMSPRING</a></li>
<li ><a href=\"photo/photos.html\">FOTOS</a></li>

<li ><a href=\"/opcionesbase.php\"> CONFIGURACION</a>



<li ><a href=\"destruir.php\">SALIR</a>


</li>
</ul>
</div> ";
} else{$re = "/pagp/usuario/inicio.php";
echo
"<script type=\"text/javascript\">
var variablejs=\" $re\";
var pagina=(variablejs);
function redireccionar()
{
location.href=pagina
}
setTimeout (\"redireccionar()\", 20);




</script>";


echo "no puedes ver esta pagina inicia sesion";}?>

//.. sigue el html

hasta finalizar el html
  #7 (permalink)  
Antiguo 07/11/2012, 12:53
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: sesiones en php (sesiones independenientes)

En este código lo que verificas es que exista la sesión, pero no verificas si el usuario es de un tipo u otro.
  #8 (permalink)  
Antiguo 07/11/2012, 12:58
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: sesiones en php (sesiones independenientes)

y como verifico si el usuario es uno otro?
  #9 (permalink)  
Antiguo 07/11/2012, 12:59
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: sesiones en php (sesiones independenientes)

Tiene que hacer lo que le indiqué sino no le valdrá ;), segun parece es que no tiene ninguna comprobacion por eso le pasa eso ;)

http://www.forosdelweb.com/f18/sesio...6/#post4306714
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #10 (permalink)  
Antiguo 07/11/2012, 13:03
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: sesiones en php (sesiones independenientes)

lo pruebo y comento gracias!
  #11 (permalink)  
Antiguo 07/11/2012, 13:22
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: sesiones en php (sesiones independenientes)

no me funciona he tratado de hacer la validacion asi

$usuariperfil= 'index='.$_POST['user'].'.php'; // el perfil del usuario creado al momento de registrarse

if(isset($_SESSION['username'])==$usuariperfil)){ //codigo aqui }

pero me muestra este error
Parse error: syntax error, unexpected ')' in C:\AppServ\www\u\index=usuario.php on line 104
  #12 (permalink)  
Antiguo 07/11/2012, 13:25
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: sesiones en php (sesiones independenientes)

isset($_SESSION['username'])

isset te valida si existe lo que le pides, pero no te va a funcionar como lo haces.

Código PHP:
Ver original
  1. if(isset($_SESSION['username'])){//si existe la sesion
  2.    if($_SESSION['perfil']==$usuariperfil){ //codigo aqui }
  3. }
  #13 (permalink)  
Antiguo 07/11/2012, 13:25
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: sesiones en php (sesiones independenientes)

porque pones el index= hay? prueba asi:

Código PHP:
Ver original
  1. $usuariperfil= $_POST['user']; // el perfil del usuario creado al momento de registrarse

A no ser que lo guardes asi ;)

Lo unico que deberias de comprobar es que el nombre de usuario sea el mismo ;)
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #14 (permalink)  
Antiguo 07/11/2012, 13:43
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: sesiones en php (sesiones independenientes)

Código PHP:
Ver original
  1. if(isset($_SESSION['username'])){//si existe la sesion
  2.    if($_SESSION['perfil']==$usuariperfil){ //codigo aqui } // no entiendo $_SESSION['que perfil?']
  3. }

hice esto pero igual no funciona
$usuariperfil=$_POST['user'];
if(isset($_SESSION['username'])){//si existe la sesion
if($usuariperfil==$usuariperfil){ //codigo aqui }
  #15 (permalink)  
Antiguo 07/11/2012, 13:58
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: sesiones en php (sesiones independenientes)

por que no pruebas primero como te indique? porlomenos te sirve para comprobar que funciona y luego pues ya mejoras lo que quieras,

Código PHP:
Ver original
  1. //Aqui deberias de validar que el nombre de usuario con el que a iniciao sesion sea igual al de la base de datos,
  2. $usuariodelperfil= "Aquí deberias de indicar el valor de la base de datos con el nombre del propietario de este perfil, es decir de la consulta que utilices para mostrar los datos";
  3. if($_SESSION['username']==$usuariodelperfil){
  4.  
  5. echo "Este perfil es tuyo";
  6.  
  7. }else{
  8.  
  9. echo "Este perfil no es tuyo";
  10.  
  11. }

Creo que el problema esta en que no tienes totalmente clara la logica de como funciona el sistema y por eso no sabes hacerlo.
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #16 (permalink)  
Antiguo 07/11/2012, 14:32
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: sesiones en php (sesiones independenientes)

Código PHP:
Ver original
  1. $usuariodelperfil= "Aquí deberias de indicar el valor de la base de datos con el nombre del propietario de este perfil, es decir de la consulta que utilices para mostrar los datos";
  2. if($_SESSION['username']==$usuariodelperfil){
  3.  
  4. echo "Este perfil es tuyo";
  5.  
  6. }else{
  7.  
  8. echo "Este perfil no es tuyo";
  9.  
  10. }

hice esto
Código PHP:
Ver original
  1. <?php
  2.  
  3. include ('verificar.php');
  4. include ('conexion.php');
  5.  
  6. $usuariodelperfil= $_POST['user'];
  7. if($_SESSION['username']==$usuariodelperfil){
  8.  
  9. echo "Este perfil es tuyo";
  10.  
  11. }else{
  12.  
  13. echo "Este perfil no es tuyo";
  14.  
  15. }
  16.  
  17.  
  18. ?>
  19. // y siempre muestra no es tuyo aunque inice la sesion

Código PHP:
Ver original
  1. // LA  VERIFICACION DE LA BASE DE DATOS QUE TNGO ES ESTA
  2.  
  3. <?php
  4. include("conexion.php");
  5.  
  6. /*$re = ''.$_POST['user'].'/'.'index='.$_POST['user'].'.php';
  7. */if(isset($_POST['user']) && !empty($_POST['user'])
  8. && isset($_POST['pw']) &&!empty($_POST['pw']))
  9.  
  10. {
  11.     $con=mysql_connect($host,$user,$pw) or die("problemas con server");
  12.     mysql_select_db($db,$con) or die ("probelmas con DB");
  13.    
  14.     $sel=mysql_query("SELECT USER,PW FROM registro WHERE USER='$_POST[user]'",$con);
  15.    
  16.     $sesion=mysql_fetch_array($sel);
  17.    
  18.     if($_POST['pw']== $sesion['PW']){
  19.     $_SESSION['username'] = $_POST['user'];
  20.     echo "sesion exitosa";
  21.     }
  22.     else{echo "error vuelve a intentarloee";}}
  23.    
  24.     else{echo "debes llenar ambos camos";}
  25.  
  26. ?>


Código PHP:
Ver original
  1. //ESTO TENGO EN LA PAGINA INICIO DE SESION
  2.  
  3. <form action="verificar.php" method="post">
  4.  
  5.  
  6. <table width="200" border="0">
  7.   <tr>
  8.     <td class="campos">Usuario(nickname) </td>
  9.     <td> <input id="cajas" type="text" name="user" /> </td>
  10.   </tr>
  11.  
  12.   <tr>
  13.     <td class="campos">Password </td>
  14.     <td> <input id="cajas" type="text" name="pw" /> </td>
  15.   </tr>
  16.  
  17.  
  18.     <td></td>
  19.     <p> </p>
  20.     <td> <input class="registrar"type="submit" value="entrar"/> </td>
  21.   </tr>
  22. </table>
  23.  
  24.  
  25.  
  26. </form>

// ya me confundi :SS muchas gracias por tomarse el tiempo de leer el codigo !
  #17 (permalink)  
Antiguo 07/11/2012, 17:26
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: sesiones en php (sesiones independenientes)

haz esto haber que valores te muestra:

antes de esto:
Código PHP:
Ver original
  1. if($_SESSION['username']==$usuariodelperfil){

pon esto:

Código PHP:
Ver original
  1. echo "El usuario que envia por post es: --> ".$usuariodelperfil."<br>";
  2. echo "El usuario de la sesion es: --> ".$_SESSION['username'];

haber que te muestra
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #18 (permalink)  
Antiguo 07/11/2012, 21:55
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: sesiones en php (sesiones independenientes)

El usuario que envia por post es: --> // no muestra nada
El usuario de la sesion es: --> usuario12345 // un usuario que habia creado antes e iniciado sesion
  #19 (permalink)  
Antiguo 07/11/2012, 22:00
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: sesiones en php (sesiones independenientes)

perdon me explique mal

El usuario que envia por post es: --> // no muestra nada
El usuario de la sesion es: --> usuario12345 // con el usuario que inicio la sesion
  #20 (permalink)  
Antiguo 08/11/2012, 04:28
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: sesiones en php (sesiones independenientes)

Pues hay esta el error, dejame que compruebe tu codigo bien y en un rato te envio la respuesta ;)
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #21 (permalink)  
Antiguo 08/11/2012, 08:36
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: sesiones en php (sesiones independenientes)

Hay el problema esta que en que no consultas nada..

En antes del if de la comparacion tendrias que crear una consulta nueva y que te saque el nombre del usuario propietario, y darle el valor del resultado a la variable $usuariodelperfil

¿Comprendes lo que te quiero decir?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #22 (permalink)  
Antiguo 08/11/2012, 10:45
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: sesiones en php (sesiones independenientes)

Para comenzar tu implementación esta mal, no debes tener un archivo (página) por cada usuario, si tienes 100 esta "bien", si tienes 10000 se te complicará demasiado, aparte, ya pensaste que hacer en caso de que necesites modificar dichos perfiles?, lo recomendable es tener una sola página (plantilla) y solo rellenar con los datos necesarios de cada usuario desde la base de datos (o donde sea que guardes su información), ahora, no has dicho como accedes al perfil del usuario, porque claramente los valores no llegan por lo tanto algo estas haciendo mal, muestra el código que usas para que el usuario llegue y pueda ver/editar su perfil...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #23 (permalink)  
Antiguo 08/11/2012, 17:32
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: sesiones en php (sesiones independenientes)

Gracias a todos ! creo planteare mejor mi codigo como lo mencionan para que no me cree muchos perfiles y solo modifique cuando se inica sesion,

nuevamente gracias por tomarse el tiempo !

Etiquetas: registro, sesiones, usuarios
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 12:52.