Foros del Web » Programando para Internet » PHP »

Porqué me cierra la sesión?

Estas en el tema de Porqué me cierra la sesión? en el foro de PHP en Foros del Web. Hola a todos! Estoy creando un sistema de usuarios en php y mysql que permite a un usuario seguir a otro (y viceversa). El código ...
  #1 (permalink)  
Antiguo 03/10/2010, 07:00
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Porqué me cierra la sesión?

Hola a todos! Estoy creando un sistema de usuarios en php y mysql que permite a un usuario seguir a otro (y viceversa). El código es el siguiente:

boton para seguir:
Código HTML:
<form name="seguir" action="user/seguir.php" method="post">
    <input type="hidden" name="seguir" value="<?php echo $user; ?>" />
    <input type="submit" value="Sigue a <?php echo $user.'!'; ?>!" />
</form> 
seguir.php:
Código PHP:
<?php
session_start
(); 

$_POST['seguir'] = $to;
$_SESSION['k_username'] = $from;

$link mysql_connect("localhost""user""psw");
mysql_select_db("db"$link);

$result mysql_query("INSERT INTO `votex`.`relationship` (`from`, `to`) VALUES ('".$from."', '".$to."')",$link);

echo 
'Ahora sigues a '.$to.'. Haz click <a href="http://www.forosdelweb.com/f18/?user='.$to.'">aquí</a> para visitar su perfil';

?>
El problema es que cuando se procesa el formulario, la sesion no se inicia (directamente me la cierra) y no se procesa la secuencia sql como debería (registra valores nulos). Porqué pasa esto?
  #2 (permalink)  
Antiguo 03/10/2010, 07:08
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Porqué me cierra la sesión?

Si se cierra automaticamente es que le tienes declarado un tiempo a la directiva session.cookie_lifetime. Podrías indicarle un 0 para que caduque una vez la persona haya cerrado el navegador.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 03/10/2010, 07:09
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 4 meses
Puntos: 150
Respuesta: Porqué me cierra la sesión?

Cuando no se te ejecute bien una sentencia mysql lo mejor es que agregues esto:
Código PHP:
$result mysql_query("INSERT INTO `votex`.`relationship` (`from`, `to`) VALUES ('".$from."', '".$to."')",$link) or die (mysql_error()); 
Ahi te mostrará en que punto de la sentencia esta el error. Otra forma es hacer un:

Código PHP:
echo "INSERT INTO `votex`.`relationship` (`from`, `to`) VALUES ('".$from."', '".$to."')"
E irte a la consola SQL del phpmyadmin y ejecutarlo de modo que puedas ver de igual modo donde esta el error pero ademas ir modificando hasta dar con la solución.
  #4 (permalink)  
Antiguo 03/10/2010, 07:11
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Porqué me cierra la sesión?

No, si el problema no está ahí... el problema está en que no ejecuta correctamente la función session_start();....

EDIT: Vun, gracias, esto ya lo solucioné yendo a phpmyadmin ;)
  #5 (permalink)  
Antiguo 03/10/2010, 07:19
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 4 meses
Puntos: 150
Respuesta: Porqué me cierra la sesión?

De nada, pon aquí la solución si no te importa, por muy poca cosa que sea siempre puede entrar alguien y aprender de tu error :-> Ese es el fundamento del foro!
  #6 (permalink)  
Antiguo 03/10/2010, 07:24
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Porqué me cierra la sesión?

Cita:
Iniciado por Vun Ver Mensaje
De nada, pon aquí la solución si no te importa, por muy poca cosa que sea siempre puede entrar alguien y aprender de tu error :-> Ese es el fundamento del foro!
Vale... es decir, la sequencia estaba bien, el problema es eso de la sesion, como no se abre, no hay valores y por lo tanto registra valores vacios :)
  #7 (permalink)  
Antiguo 03/10/2010, 08:28
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 4 meses
Puntos: 150
Respuesta: Porqué me cierra la sesión?

VAle, me confundí yo parece jejeje. Hiciste lo que puso abimaelrc? ¿tienes session_start() las paginas donde estas probando? ¿tienen los permisos correctos las carpetas donde se guardaran las sesiones en tu servidor?
  #8 (permalink)  
Antiguo 03/10/2010, 08:38
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: Porqué me cierra la sesión?

Si la sesión no empieza,esta linea tiene que dar error: $_SESSION['k_username']...
  #9 (permalink)  
Antiguo 03/10/2010, 10:27
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Porqué me cierra la sesión?

Parece que el problema está despues de
Código PHP:
<?php
session_start
(); 

$_POST['seguir'] = $to;
$_SESSION['k_username'] = $from;
Porque si imprimo (con echo) estas variables mientras lo otro esta anulado, se muestran correctamente...
  #10 (permalink)  
Antiguo 03/10/2010, 10:49
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Porqué me cierra la sesión?

Parecerá una tontería, pero cambiando el orden de unas pocas palabras lo resolví:

codigo antiguo:
Código PHP:
session_start(); 

$_POST['seguir'] = $to;
$_SESSION['k_username'] = $from;

$link mysql_connect("localhost""user""psw");
mysql_select_db("db"$link);

$result mysql_query("INSERT INTO `votex`.`relationship` (`from`, `to`) VALUES ('".$from."', '".$to."')",$link);

echo 
'Ahora sigues a '.$to.'. Haz click <a href="http://www.forosdelweb.com/f18/index.php?user='.$to.'">aquí</a> para visitar su perfil'
codigo nuevo:
Código PHP:
session_start();

$link mysql_connect("localhost","user","psw");
mysql_select_db("votex",$link);
$from $_SESSION['k_username'];
$to $_GET['seguir'];
$result mysql_query("INSERT INTO `votex`.`relationship` (`from`, `to`) VALUES ('".$from."', '".$to."')",$link);

echo 
'Ahora sigues a '.$to.'. Haz click <a href="http://www.forosdelweb.com/f18/index.php?user='.$to.'">aquí</a> para visitar su perfil';

mysql_close(); 
Pero no le he encontrado ninguna explicacion ¬¬

Última edición por 3nr1c; 03/10/2010 a las 11:22
  #11 (permalink)  
Antiguo 03/10/2010, 11:54
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 4 meses
Puntos: 150
Respuesta: Porqué me cierra la sesión?

Mas que el orden, yo diria que estas conectando a la base de datos correcta "votex", antes lo intentabas con "db". Otra cosa, en tu consulta no hay nada que tenga que ver con las sesiones, se supone que $from y $to son campos del formulario ¿no? Si no es asi, entonces lo estas solucionando rellenando $from con lo que tuvieras en la variable de sesion k_username.
  #12 (permalink)  
Antiguo 03/10/2010, 12:16
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Porqué me cierra la sesión?

3nr1c:


$_POST['seguir'] = $to; // No reprensenta Nada, que es $to?

$to = $_POST['seguir']; // Ahora sí, $to, es = al valor del campo "seguir"

$to = $_GET['seguir']; // esto tambien es válido, menos mal que no indicaste $_GET['seguir'] = $to;



Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #13 (permalink)  
Antiguo 03/10/2010, 12:41
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Porqué me cierra la sesión?

Ahora lo entendi, y ya lo veo muy claro: no puedo definir una variable global con otra variable que no se ha mencionado, tengo que definir que una variable coje el valor de una variable global ^^

Gracias a todos por la ayuda!

Etiquetas: cierra, sesión
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:33.