He creado una tabla en mi bbdd que se llama, ataques y tiene los campos id, ip e incidente.
Este es el codigo de bnoticias, página en la que me salen todas las noticias y yo elijo cual borrar.
Código PHP:
<html>
<head>
<title>Panel de Administración - Borrar Noticias</title><style type="text/css">
<!--
body {
background-image: url(../imagenes/bg_pattern.gif);
}
-->
</style>
<script type="text/javascript" src="scripts/widgEditor.js"></script>
<link href="css/widgEditor.css" rel="stylesheet" type="text/css" />
<link href="css/widgContent.css" rel="stylesheet" type="text/css" />
<link href="css/main.css" rel="stylesheet" type="text/css" />
<link href="css/info.css" rel="stylesheet" type="text/css" />
<link href="../css/general.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="200" border="0" align="center">
<tr>
<td><img src="http://www.forosdelweb.com/f18/imagenes/panel.png" width="500" height="200"></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><div align="center" class="Estilo16 Estilo40">Borra Las Noticias | <a href='../loginpanel/administracion.php'> Volver </a></div></td>
</tr>
<tr>
<td> </td>
</tr>
<tr><td>
<?php
//Nos comenectamos a la BBDD.
include("conex.php");
//Recogemos la variable PAGS.
$pags=$_GET[pags];
//Propiedades de Paginacion.
if (!isset($pags))
$pags = 0;
$cantidad = 10;
$inicial = $pags * $cantidad;
//Realizamos la busqueda en la BBDD.
$noticias=mysql_query("SELECT * FROM noticias ORDER BY fecha DESC LIMIT $inicial,$cantidad", $connect);
$totalnoticias=mysql_num_rows($noticias);
//Calculamos el numero de páginas a mostrar.
$contar=mysql_query("SELECT * FROM noticias",$connect);
$totalpaginas=mysql_num_rows($contar);
$paginas = intval($totalpaginas / $cantidad);
//Imprimimos los resultados.
while ($row=mysql_fetch_array($noticias))
{echo "<span class=\"Estilo35\"><img src=\"../imagenes/prueba2.png\" width=\"50\" height=\"50\">" .$row[titulo]."</span><br><p>" .$row[noticia]."</p><br><div> Por: ".$row[autor]." | "
.date("d-m-Y",$row[fecha])." | Categoria: ".$row[categoria]." | <a href=\"borrar.php?id=".$row[id_noticia]."\">Borrar</a></div><br><div align=\"center\"><img src=\"../imagenes/separador.png\" width=\"400\" height=\"15\"></div>";
}
echo "<br>";
//Creamos los enlaces, Anterior/Siguiente.
echo "<center><p>";
if ($pags <>0)
{
$url = $pags - 1;
echo "<font><a href='noticiero.php?id=".$id."&pags=".$url."'> Anterior « </a></font>";
}
else {
echo " ";
}
for ($i = 0; $i<($paginas + 1); $i++) {
if ($i == $pags) {
echo "<font><b>$i</b></font>";
}
else {
echo "<font><a href='noticiero.php?id=".$id."&pags=".$i."'>" .$i. "</a></font>";
}
}
if ($pags < $paginas) {
$url = $pags + 1;
echo "<font><a href='noticiero.php?id=".$id."&pags=".$url."'> » Siguiente </a></font>";
}
else {
echo " ";
}
echo "</p></center>";
?></td>
</tr>
</table>
</body>
</html>
Este es el código que tengo en borrar.php
Código PHP:
<?
//recibimos la variable $id
$id= $_GET['id'];
//Incluimos el archivo de conexion
include ("conex.php");
//comprobamos la variable $id
if(!is_int($id)){
include("cazaips.php");
$victima = $client_ip;
$sql = "INSERT INTO ataques (ip,incidente) VALUES('$victima','intento de Inyeccion SQL')";
mysql_query($sql);
die("La variable ID contiene caracteres no permitidos");
}
//borramos los registros pertenecientes a la id
mysql_query("delete from noticias where id_noticia='$id'",$connect);
header("location: ../index.php");
?>
Y bueno el codigo del script lo tienes un pelin más arriba pero lo vuelvo a poner:
Código PHP:
<?php
function getRealIP()
{
if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
{
$client_ip =
( !empty($_SERVER['REMOTE_ADDR']) ) ?
$_SERVER['REMOTE_ADDR']
:
( ( !empty($_ENV['REMOTE_ADDR']) ) ?
$_ENV['REMOTE_ADDR']
:
"unknown" );
// los proxys van añadiendo al final de esta cabecera
// las direcciones ip que van "ocultando". Para localizar la ip real
// del usuario se comienza a mirar por el principio hasta encontrar
// una dirección ip que no sea del rango privado. En caso de no
// encontrarse ninguna se toma como valor el REMOTE_ADDR
$entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']);
reset($entries);
while (list(, $entry) = each($entries))
{
$entry = trim($entry);
if ( preg_match("/^([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)/", $entry, $ip_list) )
{
// http://www.faqs.org/rfcs/rfc1918.html
$private_ip = array(
'/^0\\./',
'/^127\\.0\\.0\\.1/',
'/^192\\.168\\..*/',
'/^172\\.((1[6-9])|(2[0-9])|(3[0-1]))\\..*/',
'/^10\\..*/');
$found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);
if ($client_ip != $found_ip)
{
$client_ip = $found_ip;
break;
}
}
}
}
else
{
$client_ip =
( !empty($_SERVER['REMOTE_ADDR']) ) ?
$_SERVER['REMOTE_ADDR']
:
( ( !empty($_ENV['REMOTE_ADDR']) ) ?
$_ENV['REMOTE_ADDR']
:
"unknown" );
}
return $client_ip;
}
?>
El caso es que SIEMPRE me sale el mensaje, y en la BBDD me aparecen campos, id (Se autoincrementa) IP con el valor 0 en todas y el incidente Ataque Inyeccion SQL.
Bueno, con esto ya se que el script no funciona correctamente ya que no coge la ip, luego buscare otra manera, pero lo que me interesa es ..
Porque siempre muestra el mensaje?