Foros del Web » Programando para Internet » PHP »

Problema con un chat para bannear

Estas en el tema de Problema con un chat para bannear en el foro de PHP en Foros del Web. Hola, necesito de vuestra ayuda una vez más. Estoy instalando un chat con php en mi web. Lo he sacado de Hotscripts.com. Pero la duda ...
  #1 (permalink)  
Antiguo 08/03/2004, 11:42
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Problema con un chat para bannear

Hola, necesito de vuestra ayuda una vez más. Estoy instalando un chat con php en mi web. Lo he sacado de Hotscripts.com. Pero la duda va halli, como hago para bannear a los usuarios? Me gustaria añadir esta funcion que el chat no posee. Para ello e intentado reproducir la funcion de logout pero sin que la haga el propio usuario, (porque seria tonto bannearse uno mismo). La question es que no lo consigo. Espero que podais ayudarme. Aqui abajo os indico el codigo para que los usuarios hagan logout del chat, por si os ayuda en algo.
Código PHP:
<?
function do_logout()
{
 global 
$dbh,$usersdb,$livedb,$livetable;

 
$uid  $_SESSION['MY_UID'];
 
$rand $_SESSION['MY_RAND'];

 
db_connect($livedb);

 
// Update basic info like time online, credits, etc:
 
list($handle,$creds,$time_online,$prefs) = user_update('','0',$uid,$rand);


 
// Update user stats about time online, number of logins, etc:

 
db_select($usersdb);

 
$day   date("j",time());
 
$month date("n",time());
 
$year  date("Y",time());

 
$result mysql_query("SELECT ID, day_$day FROM user_stats WHERE (uid = $uid) AND (month = $month) AND (type = 1) AND ( year = $year)") or die(mysql_error());
 
$row    mysql_fetch_row($result);
 
mysql_free_result($result);

 
// If there are exisiting stats, update them:

 
if ($row[0]){

  
$time_online $time_online $row[1];
  
mysql_query("UPDATE user_stats SET day_$day = '$time_online' WHERE (ID = $row[0])");


 
// Otherwise start a new set of stats:

 
}else{
  
mysql_query("INSERT INTO user_stats VALUES (NULL,'$uid','1','$month','$year','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0')");
  
mysql_query("UPDATE user_stats SET day_$day = '$time_online' WHERE (uid = $uid) AND (month = $month) AND (type = 1) AND (year = $year)");
 }

  
// Remove them from the 'Live' database, and expire any cookies:


  
db_select($livedb);
  
mysql_query("DELETE from $livetable WHERE (uid = $uid)");
  
mysql_query("DELETE from user_messages WHERE (private_uid = $uid AND is_copy = 0 AND has_been_read = 1) OR (creator_uid = $uid AND (private_uid = '-1' OR is_copy = 1))");

  foreach (
$_SESSION as $name => $value){ unset($_SESSION[$name]); }

  
mysql_close();
  
welcome("logout"); // Return them to the welcome screen.
}
?>
Gracias de nuevo
  #2 (permalink)  
Antiguo 08/03/2004, 12:39
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
pues eso... tendras que hacer un boton que al pulsar seleccione el nombre de usuario y lo meta en la funcion.. asi inicializas la funcion.,..

supongo que aqui esta el ki de la cuestion

$uid = $_SESSION['MY_UID'];

tienes q sacar el mismo valor de la base de datos.,...
__________________
3w.valenciadjs.com
3w.laislatv.com
  #3 (permalink)  
Antiguo 23/12/2004, 04:27
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
hola amigos, he llegado a este post por medio de la opción de búsqueda.. os cuento un poco mi historia... en un sistem web con el php nuke, para los foros, existe la posiblidad de bannear a un usuario por su ip, pero ¿y si la ip es dinamica y cambia cada vez que entra?, no se... ¿alguna sugerencia?

bueno, nos vemos pronto, prontito.
__________________

***Aprendiz de todo y maestro de nada***
  #4 (permalink)  
Antiguo 26/03/2005, 18:12
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Entonces una buena manera seria atraves de cookies
Saludos
  #5 (permalink)  
Antiguo 26/03/2005, 19:58
 
Fecha de Ingreso: marzo-2005
Ubicación: cd. victoria, tamps, mexico
Mensajes: 53
Antigüedad: 19 años, 1 mes
Puntos: 0
Una manera mas facil seria que todos los usuarios del chat los metiera a una tabla, y si quieres banear a alguien hagas una funcion pequeña para banear y que esta .... pues simplemente borre al usuario de la tabla, y despues de que lo borre compruebe que los usuarios que no estan en la tabla automaticamente no les de autorizacion, claro para eso tendrias que sacar ala hora del login...

el nombre de usuario y la ip.

para asi a la hora de banear al usuario te lleves el usuario y la ip, y asi no batallas ... y despues lo tumbas por tanto tiempo.. tambien seria bueno que le pusieras tiempo limite del ban en seg... es decir 3600 seg = 1 hora, y asi sucesivamente porque imagina, cada vez que banees a alguien para volver a entrar tendria que desconectarse y volverse a conectar, o cambiar su ip en caso de que no tenga ip fija o que sea adsl o algo por el estilo....

Es algo laborioso pero no complicado... saludos y suerte
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:19.