Foros del Web » Programando para Internet » PHP »

Obtener url remota

Estas en el tema de Obtener url remota en el foro de PHP en Foros del Web. Hola, debido a que he buscado sin encontrar algo que funcione vengo a ver si alguien puede tener una respuesta a mi problema. tengo una ...
  #1 (permalink)  
Antiguo 06/09/2011, 04:45
 
Fecha de Ingreso: septiembre-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Obtener url remota

Hola, debido a que he buscado sin encontrar algo que funcione vengo a ver si alguien puede tener una respuesta a mi problema.


tengo una web que contiene un código php, dicho código php es llamado por otra web en otro servidor. la pregunta es como puedo obtener la url de la otra web en mi código php al momento que esta lo ejecuta.

dicho de otra manera:

tengo una web A donde tengo un codigo.php y una web B donde ejecuto el codigo.php

en codigo.php quiero que cada vez que la web B utilize el codigo.php este me guarde la url de la web B en una variable y asi yo pueda comparar el nombre de la web B con otra variable.

la manera como obtengo el resultado de codigo.php en la web B es asi:

function generarnombre($url)
{
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HEADER, 0);
ob_start();
curl_exec ($ch);
curl_close ($ch);
$string = ob_get_contents();
ob_end_clean();
return $string;
}

print generarnombre("http://a.com/codigo.php");

eso es porque el servidor no me permite un include.

probé HTTP_REFERER y no me funciona.

espero me puedan ayudar, gracias por tomarse el tiempo en leer mi problema.
  #2 (permalink)  
Antiguo 06/09/2011, 04:56
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Obtener url remota

Supongo que la forma más directa sería pasarle el texto que quieres (en tu caso, la web que llama) por la URL a la que ejecuta el código al hacer la llamada con cURL.

Luego, en el script podrías simplemente sacarlo de la variable $_GET.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 06/09/2011, 05:50
 
Fecha de Ingreso: septiembre-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Obtener url remota

Cita:
Iniciado por vgonga1986 Ver Mensaje
Supongo que la forma más directa sería pasarle el texto que quieres (en tu caso, la web que llama) por la URL a la que ejecuta el código al hacer la llamada con cURL.

Luego, en el script podrías simplemente sacarlo de la variable $_GET.

Un saludo.
primero que nada gracias por contestar

lo he considerado pero el problema que tendría es que el código que se ejecuta en b podrias colocarlo en otra web y me seguiría pasando el mismo url.

lo que quiero es hacer esto:


Código PHP:
Ver original
  1. <?php
  2. $web = "http//www.b.com";
  3.  
  4. //aqui pongo una variable que me permita saber que url solicito el resultado de este codigo
  5. $urlremota = "aqui lo que me permita sacar la url remota que llamó al script";
  6.  
  7. if($web == $urlremota)
  8.  
  9.       {
  10.               aqui tengo un generador de nombre cuyo resultado es
  11.               echo $nombre;
  12.        }
  13.  
  14. else
  15.       {     }
  16.  
  17. ?>

de manera que si el scrip que tengo en b fuese puesto en una pagina c al comparar el scrip las paginas, no daria el nombre generado como resultado.

el problema de enviar el valor de la url desde la pagina b seria que en una pagina c solo coloco donde envio el valor http:/www.b.com y mi scrip al comparar daria el resultado sin saber que la petición fue desde otra pagina.
  #4 (permalink)  
Antiguo 06/09/2011, 06:26
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Obtener url remota

No sé si he entendido bien lo que dices, pero creo que los tiros van porque piensas que el valor tendrías que pasarlo de forma estática, es decir, poner tú fijo que enviara el parámetro www.b.com.

Esto no es así, lo que tienes que hacer es enviar en la URL el valor extraído en la página que llama con $_SERVER['PHP_SELF']. De esta forma, si el script que llama al servidor A lo pones en el servidor B, se mandará www.b.com, pero si lo pones en el servidor C, se enviará www.c.com.

Creo que es eso, si no, por favor, explícate mejor en tus dudas. Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #5 (permalink)  
Antiguo 06/09/2011, 07:49
 
Fecha de Ingreso: septiembre-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Obtener url remota

si me has entendido y pensé que descartarías $_SERVER['PHP_SELF'] porque seria un dato modificable.

quiero evitar que alguien use mi script sin mi permiso y que si lo usa por lo menos tenga que hacer su propio generador de nombre. por lo tanto quiero evitar que la info de donde se ejecuta el script sea modificado desde el mismo script, con $_SERVER['PHP_SELF'] obtengo el nombre de el dominio donde se ejecuta el script y $_SERVER['PHP_SELF'] estaria en el script. si alguien cambia $_SERVER['PHP_SELF'] por www.b.com es fijo que ya puede usar el script en cualquier dominio que lo coloque porque mi código de generador de nombre obtendría un dato falso.

al obtener de donde proviene la petición o de donde se mando a llamar el codigo para generar el nombre dentro de él mismo, seria un dato que el usuario que esta usando mi scrip no pueda cambiar.

si consiguiera saber como obtener la url de donde se esta haciendo la petición entonces podría usarlo en otros archivos que son importantes para mi script y asi evitaría copias y que cambien los créditos
  #6 (permalink)  
Antiguo 06/09/2011, 08:23
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Obtener url remota

Buenas de nuevo,

Entiendo lo que quieres decir, pero realmente no creo que puedas obtener una URL así sin más y mucho menos si el dominio y servidor son diferentes. De alguna forma el script que realiza la llamada te lo tendrá que indicar, si no, lo veo imposible, al menos con PHP.

Si lo que quieres es proteger el código para que nadie lo pueda modificar o acceder a él, puedes hacer otra cosa, encriptarlo. Te paso esta librería (creo que es la mejor) para encriptar tus aplicaciones PHP, que sigan funcionando, pero que no se pueda acceder al código. Podrías codificar tu script llamada y dejar sin codificar el que recibe las llamadas. Así estarás seguro de que nadie puede acceder al código, porque en un lado está encriptado y en el otro, el servidor lo controlas tú.

No es exactamente lo que buscas, pero es lo único que se me ocurre. Espero que te sirva, un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #7 (permalink)  
Antiguo 06/09/2011, 08:53
 
Fecha de Ingreso: septiembre-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Obtener url remota

gracias, y ahora que mencionas que con php no se podria he recordado ver algo parecido con js.

de todas formas encriptarlo me vendrá bien.
  #8 (permalink)  
Antiguo 06/09/2011, 15:28
 
Fecha de Ingreso: septiembre-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Obtener url remota

no obtube la url remota pero lo que hice fue esto:

por si a alguien le interesa...

Código PHP:
Ver original
  1. <?php
  2.  
  3. //obtenemos el dominio de donde se hace la peticion
  4. $host=$_SERVER['HTTP_HOST'];
  5.  
  6. //Iniciamos cURL.
  7. $ch = curl_init();
  8.  
  9. //Accedemos a la URL
  10. curl_setopt($ch, CURLOPT_URL, "url-del-host-A");
  11.  
  12. //Indicamos que vamos a enviar datos por Post.
  13. curl_setopt ($ch, CURLOPT_POST, true);
  14.  
  15. //Iniciamos una sesion
  16. curl_setopt($ch, CURLOPT_COOKIE, 'PHPSESSID=cookie;');
  17.  
  18. //Indicamos que queremos imprimir el resultado
  19. curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
  20.  
  21. //Hacemos uso de un User Agent
  22. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
  23.  
  24. //Enviamos los datos por post
  25. curl_setopt ($ch, CURLOPT_POSTFIELDS, "varibable-a-enviar=".urlencode($host));
  26.  
  27. //Ejecutamos e imprimimos el resultado
  28. echo curl_exec($ch);
  29.  
  30. ?>

Código PHP:
Ver original
  1. <?php
  2.  
  3. //y en el host a obtenemos la variable asi
  4.  
  5. host = $_POST["variable-a-enviar"];
  6.  
  7.  
  8. ?>

salute :) y despues lo Cifre
  #9 (permalink)  
Antiguo 06/09/2011, 15:43
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Obtener url remota

Bueno, me alegro que lo solucionaras. Los tiros iban por donde yo te envié en el primer post, pero en vez de pasarlo por GET (directo en la URL) lo has pasado por POST. No sé si no me entendiste bien, pero era más o menos lo que yo te indicaba.

De todas formas, me alegro, un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Etiquetas: remota, url, variables
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 12:07.