elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Resuelto] Banip.php
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] Banip.php  (Leído 1,255 veces)
seek3r

Desconectado Desconectado

Mensajes: 3


Ver Perfil
[Resuelto] Banip.php
« en: 12 Agosto 2015, 20:39 pm »

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.

Código:
<?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.

Código:
<?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!


« Última modificación: 14 Agosto 2015, 10:34 am por #!drvy » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Una pequeña duda!
« Respuesta #1 en: 12 Agosto 2015, 20:53 pm »

yo que tu lo haría así

Código
  1. <?php
  2. echo "PRUEBA";
  3.  
  4. $deny_ips = array(file_get_contents('ips.txt'));
  5. // read user ip adress:
  6. $ip = isset($_SERVER['REMOTE_ADDR']) ? trim($_SERVER['REMOTE_ADDR']) : '';
  7.  
  8. // search current IP in $deny_ips array
  9. if ( (strpos($deny_ips,$ip) )!== FALSE ) {
  10. // address is blocked:
  11. echo 'Your IP adress ('.$ip.') was blocked!';
  12. }

ya que file_get_contents retorna un string, no un array


En línea

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

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Una pequeña duda!
« Respuesta #2 en: 12 Agosto 2015, 21:06 pm »

yo que tu lo haría así

Código
  1. <?php
  2. echo "PRUEBA";
  3.  
  4. $deny_ips = array(file_get_contents('ips.txt'));
  5. // read user ip adress:
  6. $ip = isset($_SERVER['REMOTE_ADDR']) ? trim($_SERVER['REMOTE_ADDR']) : '';
  7.  
  8. // search current IP in $deny_ips array
  9. if ( (strpos($deny_ips,$ip) )!== FALSE ) {
  10. // address is blocked:
  11. echo 'Your IP adress ('.$ip.') was blocked!';
  12. }

ya que file_get_contents retorna un string, no un array

Me devuelve esto la pagina

Código:
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!
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Una pequeña duda!
« Respuesta #3 en: 12 Agosto 2015, 21:11 pm »

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

Código
  1. <?php
  2. echo "PRUEBA";
  3.  
  4. $deny_ips = file_get_contents('ips.txt');
  5. // read user ip adress:
  6. $ip = isset($_SERVER['REMOTE_ADDR']) ? trim($_SERVER['REMOTE_ADDR']) : '';
  7.  
  8. // search current IP in $deny_ips array
  9. if ( (strpos($deny_ips,$ip) )!== FALSE ) {
  10. // address is blocked:
  11. echo 'Your IP adress ('.$ip.') was blocked!';
  12. }
En línea

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

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Una pequeña duda!
« Respuesta #4 en: 12 Agosto 2015, 22:40 pm »

Muchas gracias funciona perfecto! .
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
resuelto
Programación Visual Basic
usuario oculto 2 2,185 Último mensaje 12 Enero 2009, 00:29 am
por usuario oculto
{Resuelto} [vbs] HTA.. ¬¬ « 1 2 »
Scripting
xassiz_ 10 7,898 Último mensaje 2 Octubre 2009, 21:50 pm
por kevlar
{RESUELTO} ¿Cómo redimensiono un jPanel? {RESUELTO} « 1 2 »
Java
|Miguel| 12 10,566 Último mensaje 13 Febrero 2012, 15:11 pm
por |Miguel|
[RESUELTO] No consigo limpiar un JTable... [RESUELTO]
Java
|Miguel| 2 29,192 Último mensaje 12 Febrero 2018, 09:06 am
por shoni_isra
[RESUELTO] C++ ASM
Programación C/C++
Miseryk 2 2,553 Último mensaje 20 Marzo 2012, 22:03 pm
por Miseryk
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines