Foros del Web » Programando para Internet » PHP »

¿Qué error hay aquí?

Estas en el tema de ¿Qué error hay aquí? en el foro de PHP en Foros del Web. Ayuda que ERROR cometi aquí... La idea es que cuando la persona se loguea se crea una 'key' unica y se guarda en la session:id ...
  #1 (permalink)  
Antiguo 04/09/2012, 17:36
Avatar de kendall00  
Fecha de Ingreso: septiembre-2011
Ubicación: $Ubicacion => ['Costa Rica'];
Mensajes: 85
Antigüedad: 12 años, 7 meses
Puntos: 5
¿Qué error hay aquí?

Ayuda que ERROR cometi aquí...

La idea es que cuando la persona se loguea se crea una 'key' unica y se guarda en la session:id y se inserta un registro en la tabla sesiones, en la columna key se guarda dicha key y en la columna activo [valor:1] y cuando se va a desconectar se cambia el valor de activo por 0:

Código PHP:
Ver original
  1. <?php
  2. include ("../conexion.php");#Si existe! y funciona ya que lo uso en otras paginas
  3. $key = $_SESSION['key'];#Si existe
  4. $sql = "UPDATE sesiones SET active = '0' WHERE key ='$key'";#Creo que el error es aquí
  5. $c = @mysql_query($sql);#Se ejecuta
  6. session_destroy();#Se elimina la session
  7. header ("Location: index.php");#Se redirecciona
  8. ?>
__________________
El limite es la imaginacion... con Dios todo es posible.
  #2 (permalink)  
Antiguo 04/09/2012, 17:39
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima
Mensajes: 25
Antigüedad: 11 años, 7 meses
Puntos: 6
Respuesta: ¿Qué error hay aquí?

¿que error te sale?

si active es numérico no necesitas la comillas.
  #3 (permalink)  
Antiguo 04/09/2012, 21:09
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: ¿Qué error hay aquí?

Holas,

Si no mencionas cual es el error que te muestra seria mas facil, pero esto podria servir en algo:

Código PHP:
Ver original
  1. <?php
  2. include ('../conexion.php');
  3. $sql = "UPDATE sesiones SET active = '0' WHERE key ='".$_SESSION['key']."'";
  4. $c = mysql_query($sql) or die('Ups!: '.mysql_error());
  5. unset($_SESSION['key']);
  6. header ('Location: index.php');

Saludos
__________________
.: Gildus :.
  #4 (permalink)  
Antiguo 05/09/2012, 10:58
Avatar de kendall00  
Fecha de Ingreso: septiembre-2011
Ubicación: $Ubicacion => ['Costa Rica'];
Mensajes: 85
Antigüedad: 12 años, 7 meses
Puntos: 5
Respuesta: ¿Qué error hay aquí?

Ah si lo lamento... en teoria no me devuelve ningún error aun quitando el '@' antes de mysql_query si no que simplemente no me cambia en 1 por el 0 en la bd! Cualquier ayuda es bien recibida!
__________________
El limite es la imaginacion... con Dios todo es posible.
  #5 (permalink)  
Antiguo 05/09/2012, 11:12
Avatar de thekye  
Fecha de Ingreso: febrero-2012
Ubicación: Acapulco
Mensajes: 13
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: ¿Qué error hay aquí?

Verifica Que no confundas mayusculas y minusculas todo ponlo en minusculas o mayusculas al igual que en tu Base de datos verifica que todo este bien.

y nos podrias desir que contiene la Session Key?

si no prueva aciendo un

<?php
echo "$key";
?>

y te devolvera los datos alomejor la variable key no esta funcionando
  #6 (permalink)  
Antiguo 05/09/2012, 11:16
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima
Mensajes: 25
Antigüedad: 11 años, 7 meses
Puntos: 6
Respuesta: ¿Qué error hay aquí?

Active es un valor numérico o cadena, por ello tal vez no te hace el update, por eso te comente lo de las ' '

verifica tu query si funciona correctamente con valores reales.

Código PHP:
UPDATE sesiones SET active '0' WHERE key ='cadenaexitente' 
yo creo que es el error del query en el sql
  #7 (permalink)  
Antiguo 05/09/2012, 11:26
Avatar de kendall00  
Fecha de Ingreso: septiembre-2011
Ubicación: $Ubicacion => ['Costa Rica'];
Mensajes: 85
Antigüedad: 12 años, 7 meses
Puntos: 5
Respuesta: ¿Qué error hay aquí?

Buena la variable $key si tiene un valor por que lo muestro en el 'HOME' del usuario donde le muestro el ID unico de esa sesion! y active en phpmyadmin es de tipo VARCHAR no INT!
__________________
El limite es la imaginacion... con Dios todo es posible.
  #8 (permalink)  
Antiguo 05/09/2012, 11:43
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima
Mensajes: 25
Antigüedad: 11 años, 7 meses
Puntos: 6
Respuesta: ¿Qué error hay aquí?

Dentro de tu conexion.php no estarás destruyendo la session?
  #9 (permalink)  
Antiguo 05/09/2012, 12:05
Avatar de kendall00  
Fecha de Ingreso: septiembre-2011
Ubicación: $Ubicacion => ['Costa Rica'];
Mensajes: 85
Antigüedad: 12 años, 7 meses
Puntos: 5
Respuesta: ¿Qué error hay aquí?

Imposible: aquí está: conexion.php

Código PHP:
Ver original
  1. <?php
  2. #@Conexiones
  3. #It's an include!
  4. $server = 'X';
  5. $user = 'X';
  6. $pass = 'X';
  7. $db = 'X';
  8. $gestor = mysql_connect($server,$user,$pass);
  9. if (!$gestor){
  10. echo "Error de Server: x001: ".mysql_error();
  11. $select_db = mysql_select_db($db,$gestor);
  12. if (!$select_db){
  13. echo "Error de Server: x002: ".mysql_error();
  14. ?>
Este archivo funciona al 100% ya que lo utilizo en casi el 75% de mi web, menos login y registrarse!

y ahora que veo el codigo de @gildus no puedo usar unset por que solo me 'destruye' $_SESSION['key'] y en $_SESSION tengo como 8 o 10 datos diferentes!
__________________
El limite es la imaginacion... con Dios todo es posible.
  #10 (permalink)  
Antiguo 05/09/2012, 18:17
 
Fecha de Ingreso: enero-2010
Mensajes: 127
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: ¿Qué error hay aquí?

amigo muestra el error que te dice
  #11 (permalink)  
Antiguo 05/09/2012, 18:57
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ¿Qué error hay aquí?

Incluye esta línea después de session_start():

var_dump($_SESSION);

Qué datos obtienes?, el correspondiente a 'key' existe en la tabla sesiones?

Cuál es la finalidad de la tabla sesiones y el tener active como cero o uno?, recuerda que si se cierra el navegador sin hacer click en finalizar sesión el usuario quedaría como activo.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: kendall00
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 10:55.