Foros del Web » Programando para Internet » PHP »

Consulta sobre logica en este codigo

Estas en el tema de Consulta sobre logica en este codigo en el foro de PHP en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php error_reporting ( E_ALL ) ; ini_set ( 'display_errors' , 0 ) ; session_start ( ) ; include ( ...
  #1 (permalink)  
Antiguo 29/03/2011, 18:33
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 15 años, 4 meses
Puntos: 5
Consulta sobre logica en este codigo

Código PHP:
Ver original
  1. <?php error_reporting(E_ALL);
  2. ini_set('display_errors', 0);
  3. include ("conexion.php");
  4. $idnegro = mysql_query('SELECT id FROM usuarios WHERE usuario = "'.$_SESSION['k_username'].'"',$db);
  5. $id = mysql_result($idnegro,0);
  6.   $listanegra = mysql_query('SELECT bloquser FROM listanegra WHERE bloquser = "'.$id.'"',$db);
  7.  $negra = mysql_result($listanegra,0);
  8.  if($negra == $id){
  9.  header("location:bloqueo.php");
  10.  exit;
  11.  }
  12.  ?>

Hola a todos, este codigo sirve basicamente para detectar si un usuario que navega esta en la "lista negra", lo tengo en cada pagina de web en el header. Bien, supongamos que el usuario "pepe" inicia sesion(a todo esto se inicia una sesion cuando se logea), y navega como $_SESSION['k_username']=="pepe" digamso a modo de sintaxis ... Ahi todo bien, me hace la query y si no lo encuentran en la lista negra puede seguir navegando tranquilo.
Bien, mi problema está cuando tengo un visitante, un visitante no genera una sesion y por coherencia $id (que es la variable donde se almacena la query para buscar el id de la sesion) y $negra (que es la variable que busca la id en la lista negra), esas dos quedan vacias, y cuando comparo wuala!, me los manda a bloquear xD.
¿Como puedo arreglar esto?, no se me ocurre nada.

Saludos!
  #2 (permalink)  
Antiguo 29/03/2011, 18:49
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Consulta sobre logica en este codigo

Con un simple if es suficiente:

Código PHP:
Ver original
  1. if(isset($_SESSION['k_username']) && $_SESSION['k_username'] != '') {
  2.     // Si existe la variable de sesion y no es una cadena vacia
  3.     // Entonces aqui verificas si el usuario esta en lista negra o no
  4. }

Podrias ahorrarte la consulta para obtener la ID del usuario si al iniciar sesion (login) tambien creas $_SESSION['id'];
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: logica
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 14:21.