[Resuelto] Banip.php

Iniciado por seek3r, 12 Agosto 2015, 20:39 PM

0 Miembros y 1 Visitante están viendo este tema.

seek3r

Que tal amigos, les hago una pregunta, necesito hacer un script PHP, qe una ves qe el usuario lo visite, agregue su IP a un fichero (ips.txt) y que luego cuando vuelva a entrar si se comprueba qe esta la IP, que no lo deje entrar. Se entiende ? esto es lo qe hice pero por alguna razon no funciona soy bastante nuevo en el tema de PHP.

Este es el POST.php (Una ves qe el usuario emitio un formulario, se agrega la IP a ips.txt)
Creo que esta bien esta parte del codigo.


<?php
$ip 
getenv("REMOTE_ADDR");
  
$file fopen("ips.txt""a");
   $data $ip PHP_EOL;
   fwrite($file$data);
   fclose($file);
?>



Ahora el Index.php
Seria que antes de mostrar la pagina, el script verifique si esta bloqueado o no, y no lo deje entrar.


<?php
echo "PRUEBA";

$deny_ips = array(file_get_contents('ips.txt'));
// read user ip adress:
$ip = isset($_SERVER['REMOTE_ADDR']) ? trim($_SERVER['REMOTE_ADDR']) : '';
 
// search current IP in $deny_ips array
if ( (array_search($ip$deny_ips))!== FALSE ) {
 
// address is blocked:
 
echo 'Your IP adress ('.$ip.') was blocked!';
 exit;
}


Ese array file get contents lo invente yo jajaja, no se por que noanda, por favor responder a la brevedad muchas gracias!

engel lex

yo que tu lo haría así

Código (php) [Seleccionar]
<?php
echo "PRUEBA";

$deny_ips = array(file_get_contents('ips.txt'));
// read user ip adress:
$ip = isset($_SERVER['REMOTE_ADDR']) ? trim($_SERVER['REMOTE_ADDR']) : '';
 
// search current IP in $deny_ips array
if ( (strpos($deny_ips,$ip) )!== FALSE ) {
 
// address is blocked:
 
echo 'Your IP adress ('.$ip.') was blocked!';
 exit;
}


ya que file_get_contents retorna un string, no un array
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

seek3r

Cita de: engel lex en 12 Agosto 2015, 20:53 PM
yo que tu lo haría así

Código (php) [Seleccionar]
<?php
echo "PRUEBA";

$deny_ips = array(file_get_contents('ips.txt'));
// read user ip adress:
$ip = isset($_SERVER['REMOTE_ADDR']) ? trim($_SERVER['REMOTE_ADDR']) : '';
 
// search current IP in $deny_ips array
if ( (strpos($deny_ips,$ip) )!== FALSE ) {
 
// address is blocked:
 
echo 'Your IP adress ('.$ip.') was blocked!';
 exit;
}


ya que file_get_contents retorna un string, no un array

Me devuelve esto la pagina


PRUEBA
Warning: strpos() expects parameter 1 to be string, array given in /home/u450307674/public_html/test/index.php on line 9
Your IP adress (1**.194.***.**) was blocked!

engel lex

sorry! se me pasó el casting a array loco que hiciste

Código (php) [Seleccionar]
<?php
echo "PRUEBA";
 
$deny_ips file_get_contents('ips.txt');
// read user ip adress:
$ip = isset($_SERVER['REMOTE_ADDR']) ? trim($_SERVER['REMOTE_ADDR']) : '';
 
// search current IP in $deny_ips array
if ( (strpos($deny_ips,$ip) )!== FALSE ) {
 
// address is blocked:
 
echo 'Your IP adress ('.$ip.') was blocked!';
 exit;
}
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

seek3r

Muchas gracias funciona perfecto! .