Cita:
Iniciado por carlosfocus Banear IP
Primero creamos la tabla SQL:
Código PHP:
CREATE TABLE baneadas (
id int auto_increment NOT NULL,
ip char(20) NOT NULL,
PRIMARY KEY (id)
);
Luego creamos el archivo administrar.php:
Código PHP:
<html>
<?
$clave="admin";
if ($pass==$clave) {
echo "
<head><script language=\"JavaScript\">
function confirmaBorra(ip) {
if (confirm(\"Estás seguro?\")) { document.location=\"". $PHP_SELF ."?ipBorrada=\"+ip+\"&accion=borra&pass=$clave\"; }
}
</script>";
?></head>
<body>
<?
include "config.php";
if (($accion=="banea") && ($ipBaneada)) {
mysql_query("INSERT INTO baneadas VALUES ('','$ipBaneada')");
echo "Ip baneada:<b>$ipBaneada</b>";
}
elseif (($accion=="borra") && ($ipBorrada)) {
mysql_query("DELETE FROM baneadas WHERE ip='$ipBorrada'");
echo "Ip borrada: $ipBorrada";
}
echo "<table style=\"width:100%;font-size:12;font-family:tahoma\" border=1 cellspacing=0 cellpadding=0><tbody>";
$query=mysql_query("SELECT ip FROM baneadas");
while ($r=mysql_fetch_row($query)) {
echo "<tr><td width=\"50%\">$r[0]</td>
<td><a href=# onClick=\"confirmaBorra('$r[0]');\">[Borrar]</a></td>
</tr>";
}
echo "<tr><td colspan=2>
<form action=\"". $PHP_SELF ."\" method=post>
Ip a banear: <input type=text name=ipBaneada><br>
<input type=submit value=\"Prohibir su entrada!\">
<input type=hidden value=\"$pass\" name=pass>
<input type=hidden value=\"banea\" name=accion>
</form>";
} else {
echo "<form method=post action=\"". $PHP_SELF ."\">
Password: <input type=password name=pass><br>
<input type=submit value=\"Entrar\"></form>"; }
?></body></html>
Y para terminar el mete esto en el index.php:
Código PHP:
<?
GLOBAL $REMOTE_ADDR;
include "config.php";
$query=mysql_query("SELECT ip FROM baneadas WHERE ip='$REMOTE_ADDR'");
$r=mysql_fetch_row($query);
if (!$r[0]) {
?>
<!## Aquí todo el código de vuestra web. TODO!
<html><body>... etc.
También puede haber <?php ... ?>
##>
<? } else {
echo "<html><head>
<title>ERROR.</title></head>
<body>Estas baneado en esta página, te es prohibido entrar.<br>
Por favor, abandona el sitio</body></html>";
}
?>
[Comentario]
Si bien la técnica puede servir .. (faltaría comentar el código .. sino realmente a quien no le funcione e incluso a quien le funcione nunca sabrá en que consiste el tema ...) el ejemplo que propones NO USA los arrays SUPERGLOBALES!!! .. Si colocamos código de ejemplo/útilidad, .. cuidemos esos aspectos mínimos ..
Te recomiendo adaptar ese código al uso de los arrays superglobales: $_GET, $_SERVER, $_POST .. etc.
Un saludo,