Foros del Web » Programando para Internet » PHP »

Porque no funciona?

Estas en el tema de Porque no funciona? en el foro de PHP en Foros del Web. Tengo esté código para verificar si está baneado: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php function check_ban ( $username ) {         ...
  #1 (permalink)  
Antiguo 13/02/2014, 18:02
 
Fecha de Ingreso: agosto-2013
Ubicación: En Saturno.
Mensajes: 19
Antigüedad: 10 años, 8 meses
Puntos: 0
Pregunta Porque no funciona?

Tengo esté código

para verificar si está baneado:

Código PHP:
Ver original
  1. <?php
  2. function check_ban($username) {
  3.         $q = mysql_query("SELECT * FROM bans WHERE value='".$username."' AND bantype='user' OR value = '".$_SERVER['REMOTE_ADDR']."' AND bantype = 'ip' LIMIT 1");
  4.         if(mysql_num_rows($q) < 1) {
  5.                return false;
  6.         }else{
  7.                 return true;
  8.         }
  9.    }
  10. ?>

entonces llamo la función con esté if

Código PHP:
Ver original
  1. <?php
  2. $username = $_SESSION['username'];
  3. if(check_ban($username)){
  4. echo'Baneado';
  5. }else{
  6. echo'No estás baneado';
  7. }
  8. ?>

esta es la tabla qué tengo:
Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `bans` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `bantype` enum('user','ip') NOT NULL DEFAULT 'user',
  4.   `value` varchar(50) NOT NULL,
  5.   `reason` text NOT NULL,
  6.   `expire` double NOT NULL DEFAULT '0',
  7.   `added_by` varchar(50) NOT NULL,
  8.   `added_date` varchar(50) NOT NULL,
  9.   `appeal_state` enum('0','1','2') NOT NULL DEFAULT '1',
  10.   PRIMARY KEY (`id`),
  11.   KEY `expire` (`expire`)
  12. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;

Porque siempre me sale 'No estás baneado'
he probado tantos códigos y no funciona ninguno
y eso qué tengo en la columna value el nombre de usuario con el cuál testeo,

Agradezco las respuestas
Saludos
  #2 (permalink)  
Antiguo 13/02/2014, 18:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Porque no funciona?

Bueno, pues si hay un problema nadie lo va a adivinar por ti, debes depurar tu código para saber lo que ocurre.

De ningún modo podemos ejecutar tu código mentalmente para saber que anda mal.

La idea es ayudarte a solucionar el problema, pero tu tienes que aprender a descubrir información al respecto, pues es muy útil para entender lo que sucede.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/02/2014, 18:50
 
Fecha de Ingreso: agosto-2013
Ubicación: En Saturno.
Mensajes: 19
Antigüedad: 10 años, 8 meses
Puntos: 0
Pregunta Respuesta: Porque no funciona?

Cita:
Iniciado por pateketrueke Ver Mensaje
Bueno, pues si hay un problema nadie lo va a adivinar por ti, debes depurar tu código para saber lo que ocurre.

De ningún modo podemos ejecutar tu código mentalmente para saber que anda mal.

La idea es ayudarte a solucionar el problema, pero tu tienes que aprender a descubrir información al respecto, pues es muy útil para entender lo que sucede.
Bueno muchas gracias por tu respuesta,

de todas maneras ya lo solucione,

Lo que hice fue es verificar si existe la columna desde el nombre de usuario con un $_GET

Gracias.
  #4 (permalink)  
Antiguo 13/02/2014, 19:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Porque no funciona?

Uno de tus primeros errores es usar palabras reservadas de MySQL como nombres de objetos de bases de datos.

Eso puede generar errores sintácticos indetectables.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql-php, usuario, verificar
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 17:21.