Foros del Web » Programando para Internet » PHP »

¿Como puedo hacer esto?

Estas en el tema de ¿Como puedo hacer esto? en el foro de PHP en Foros del Web. Hola a todos. Me podrian ayudar a ver que tan factible es hacer lo siguiente? 1. En todas las paginas de mi web tengo un ...
  #1 (permalink)  
Antiguo 31/08/2005, 19:55
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 13 años
Puntos: 2
Exclamación ¿Como puedo hacer esto?

Hola a todos.

Me podrian ayudar a ver que tan factible es hacer lo siguiente?

1. En todas las paginas de mi web tengo un listado de los ultimos 5 articulos, para lo cual utilizo un script en PHP que trae de la BD segun los ID, los ultimos 5 articulos, es decir, su "Titulo" y su "link".

Ahora, no me gustaria que algun "vivo" se entere de como funciona y ponga en su web un link a mi script y de tal forma pueda exponer en su sitio mis ultimos 5 scripts.

Para impedir esto pense que tal vez, de alguna manera, podria indicarle al script que si la llamada al script no proviene de http://misitio.com que de un cartel de error.
Pense en usar el "HTTP REFERER" pero no se si PHP considerara como REFERER a la pagina que llama al script.

¿Que me recomiendan hacer o buscar?

2. ¿Existe alguna forma de saber si una funcion ha sido declarada o no?
Ya que tengo un "bd.php" con el script de conectar a la base, el mismo lo incluyo en cada sitio que necesito conectar. Pero el problema es que si una pagina tiene tal archivo incluido, y luego llamo a un script que tambien necesita conectar y el mismo script TAMBIEN tiene el include, me da error diciendo que "conectar_bd()" ya ha sido definida. Claro esta, por que se incluyo bd.php en la pagina padre.


Muchisimas gracias por sus respuestas y tiempo.

Saludo atte.
  #2 (permalink)  
Antiguo 31/08/2005, 20:09
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 14 años, 6 meses
Puntos: 2
Podes usar $_SERVER['PHP_SELF']

Tambien podrías usar 'DOCUMENT_ROOT' y comprar los resultados (si no es de tu sitio que envie error)
__________________
I Love Programming...
  #3 (permalink)  
Antiguo 31/08/2005, 20:13
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Contestando a tu pregunta:
si incluyes el script (con include) dentro de otra página, PHP_SELF devolverá la ruta a la página que realizó el include, por lo que puedes controlar por ahí (guardas en una variable el PHP_SELF de la página padre y luego haces que la incluída lo compruebe. Si son distintos, detienes del script)

Por otro lado, creo que no deberías preocuparte por esto dado que si alguien está usando bases de datos o es un conocedor de php (por lo que podrá programar o al menos buscar en internet lo que necesite) o está haciendo su página con programas como Dreamweaver, que ya traen funciones como ésta fáciles de usar.

Saludos.
  #4 (permalink)  
Antiguo 31/08/2005, 20:40
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 13 años
Puntos: 7
Cita:
Iniciado por Computer XTress
1. En todas las paginas de mi web tengo un listado de los ultimos 5 articulos, para lo cual utilizo un script en PHP que trae de la BD segun los ID, los ultimos 5 articulos, es decir, su "Titulo" y su "link".

Ahora, no me gustaria que algun "vivo" se entere de como funciona y ponga en su web un link a mi script y de tal forma pueda exponer en su sitio mis ultimos 5 scripts.

Para impedir esto pense que tal vez, de alguna manera, podria indicarle al script que si la llamada al script no proviene de http://misitio.com que de un cartel de error.
Pense en usar el "HTTP REFERER" pero no se si PHP considerara como REFERER a la pagina que llama al script.

¿Que me recomiendan hacer o buscar?
Qué mejor que promocionen tus scripts y por consiguiente tu sitio, a mi no me molestaría para nada que hagan eso..., a no ser que "roben" el ancho de banda, lo cual mayormente se resuelve usando mod_rewrite. Ver para más detalles

Cita:
Iniciado por Computer XTress
2. ¿Existe alguna forma de saber si una funcion ha sido declarada o no?
Ya que tengo un "bd.php" con el script de conectar a la base, el mismo lo incluyo en cada sitio que necesito conectar. Pero el problema es que si una pagina tiene tal archivo incluido, y luego llamo a un script que tambien necesita conectar y el mismo script TAMBIEN tiene el include, me da error diciendo que "conectar_bd()" ya ha sido definida. Claro esta, por que se incluyo bd.php en la pagina padre.
Puedes comprobar la existencia de una función con function_exists, pero el problema que mencionas, me parece que se solucionaría usando include_once o require_once...

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 31/08/2005, 21:39
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 13 años
Puntos: 2
GRACIAS CHICOS GRACIASSSSSSSSSSSSSSS

Son unos capos, lo del include once lo lei en 10 mil tutoriales y no le habia dado bola hasta que ahora la situacion me puso los pies en la tierra.

Quedo todo diviiiiiino, que emocion, gracias! :D
  #6 (permalink)  
Antiguo 31/08/2005, 23:56
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 13 años
Puntos: 2
ahhh un dato interesante...

Me di cuenta que si dentro del SCRIPT que NO deseo que otras personas linkeen desde sus webs hago un "include_once" hacia uno de mis scripts, cuando desde otro site intentan abrir el script les tirar un cajon lleno de errores de PHP.

Saludos.
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 20:20.