Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Escribir en mi base autorizando antes con una función IF

Estas en el tema de Escribir en mi base autorizando antes con una función IF en el foro de PHP en Foros del Web. Hola, soy nuevo en el foro!, no quiero ser largo. Espero que me ayuden y en alguna oportunidad poder ayudarlos yo. El tema es el ...
  #1 (permalink)  
Antiguo 09/02/2016, 14:50
 
Fecha de Ingreso: febrero-2016
Mensajes: 13
Antigüedad: 8 años, 2 meses
Puntos: 0
Pregunta Escribir en mi base autorizando antes con una función IF

Hola, soy nuevo en el foro!, no quiero ser largo. Espero que me ayuden y en alguna oportunidad poder ayudarlos yo.
El tema es el siguiente, armé un función para escribir en una base de datos la IP del visitante de un sitio, y se me esta llenando con ip's de google, creo.
Quiero escribir la IP evitando escribir las de google que sería un número así: "66.249.65.49". El problema es que los dos últimos dígitos nunca son los mismos, pueden ser cualquier número, cambian seguido.

La función debería ser algo así, pero no puedo resolver la condición del IF, no se como decir que el número al final puede ser cualquier caracter o número:

if ($IpVisitante == '66.249.65.'.\d) {
echo No escribo nada;
}else {
echo Escribo rn la base;
}

"En otras palabras el ejemplo no me funciona" alguien me puede ayudar?
  #2 (permalink)  
Antiguo 09/02/2016, 16:06
Avatar de gonzaherrera77  
Fecha de Ingreso: noviembre-2015
Mensajes: 60
Antigüedad: 8 años, 5 meses
Puntos: 7
Respuesta: Escribir en mi base autorizando antes con una función IF

Hola emiliano9386, podrias probar con expresiones regulares un ejemplo seria

Código PHP:
Ver original
  1. <?php
  2.  
  3. $patron = '/^[66.249.65.]+[[:digit:]]{2}$/';
  4. $ip = '66.249.65.30';
  5.  
  6. if(preg_match_all($patron, $ip)) {
  7.    echo 'Ip de google '.$ip;
  8. }
  9. else {
  10.    echo 'No es ip de google';
  11. }
  12.  
  13. ?>

¡Saludos!
  #3 (permalink)  
Antiguo 09/02/2016, 16:34
 
Fecha de Ingreso: febrero-2016
Mensajes: 13
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Escribir en mi base autorizando antes con una función IF

gonzaherrera77 mil gracias, creo que puede servir, lo estoy probando, hay que esperar que indexe algún bot de google para ver si funciona.
Ahora me surje una duda con el ejemplo, el ip del bot puede tener al final 2 o tres numero, funciona si no pongo lo que esta entre llaves?
ej. $patron = '/^[66.249.65.]+[[:digit:]]$/';

Gracias
  #4 (permalink)  
Antiguo 09/02/2016, 16:46
Avatar de gonzaherrera77  
Fecha de Ingreso: noviembre-2015
Mensajes: 60
Antigüedad: 8 años, 5 meses
Puntos: 7
Respuesta: Escribir en mi base autorizando antes con una función IF

Asi es, lo que esta entre llaves especifica que solo termine con dos caracteres. Si vos le sacas esa especificación podria terminar con uno, dos, tres, ect.

¡Saludos!
  #5 (permalink)  
Antiguo 09/02/2016, 17:01
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Escribir en mi base autorizando antes con una función IF

Código PHP:
Ver original
  1. <?php
  2.  
  3. $ip = '66.249.65.30';
  4.  
  5. if( substr($ip,0,10) == "66.249.65." ) {
  6.    echo 'Ip de google '.$ip;
  7. }
  8. else {
  9.    echo 'No es ip de google';
  10. }
  11.  
  12. ?>

Con substr también lo vale me imagino yo, saludos ;)
  #6 (permalink)  
Antiguo 09/02/2016, 17:18
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: Escribir en mi base autorizando antes con una función IF

Hola amigo,
también creo q la forma mencionada por rodocoyote15 es más fácil jeje
Sólo que el substr sería de 0 a 9
Código PHP:
Ver original
  1. ... substr($ip,0,9) ..
Saludos!
  #7 (permalink)  
Antiguo 09/02/2016, 18:21
 
Fecha de Ingreso: febrero-2016
Mensajes: 13
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Escribir en mi base autorizando antes con una función IF

Hola, muchachos. La opcion que paso gonzaherrera77 no me funciono, voy a probar con la de rodocoyote15 / german_1441. Espero que funcione.
  #8 (permalink)  
Antiguo 09/02/2016, 19:47
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Escribir en mi base autorizando antes con una función IF

Sería substr($ip,0,10)
Código PHP:
Ver original
  1. 66.249.65.

substr($ip,0,9) me devuelve esto
Código PHP:
Ver original
  1. 66.249.65

De todas formas lo pruebas, saludos :D
  #9 (permalink)  
Antiguo 09/02/2016, 22:39
Avatar de gonzaherrera77  
Fecha de Ingreso: noviembre-2015
Mensajes: 60
Antigüedad: 8 años, 5 meses
Puntos: 7
Respuesta: Escribir en mi base autorizando antes con una función IF

Interesante rodocoyote15 no se me habia ocurrido jeje.

emiliano9386, podriamos ver como lo estas implementando?

¡Saludos!!
  #10 (permalink)  
Antiguo 10/02/2016, 00:52
 
Fecha de Ingreso: febrero-2016
Mensajes: 13
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Escribir en mi base autorizando antes con una función IF

GENIAL!!!! ahora si, al parecer funciona perfecto ya que no me escribe nada hace un buen rato en la base con ese IP.

Gracias a todos!

$ip=DETECTO IP;

if( substr($ip,0,9) == "66.249.65" ) {
NO ESCRIBO EN LA BASE
}
else{
ESCRIBO EN LA BASE
}
  #11 (permalink)  
Antiguo 10/02/2016, 09:31
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: Escribir en mi base autorizando antes con una función IF

Hola amigo, me alegro q haya quedado solucionado tu problema,
sin embargo, la solución es la que te había comentado rodocoyote,
substr($ip,0,10)... para que te tome hasta el próximo punto (.)
No recordaba que el tercer parámetro especifica cuantos caractéres quieres y no hasta que posición...
Saludos!

Etiquetas: Ninguno
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 21:43.