Foros del Web » Programando para Internet » PHP »

fopen - problemas!

Estas en el tema de fopen - problemas! en el foro de PHP en Foros del Web. Resulta que tengo una página que quiero abrir con fopen (o cualquier funcion que abra una página)... Esta pagina utiliza cookies para saber si estas ...
  #1 (permalink)  
Antiguo 15/07/2007, 09:59
 
Fecha de Ingreso: octubre-2006
Mensajes: 9
Antigüedad: 17 años, 7 meses
Puntos: 0
fopen - problemas!

Resulta que tengo una página que quiero abrir con fopen (o cualquier funcion que abra una página)...

Esta pagina utiliza cookies para saber si estas logeado... cuando yo entro directamente por firefox! ... no hay problema siempre entro logeado porque se guarda la session.

Pero cuando la abro con FOPEN se abre la pagina pero como si no estubiera logeado.

La idea es poder enviar de alguna manera la coockie para que cuando la abra con fopen este logeado !


¿Se puede?
  #2 (permalink)  
Antiguo 15/07/2007, 10:40
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Podrías usar fsockopen() y luego envías las cabeceras correspondientes con dicha información.
Realmente no tengo idea si funcionara, yo creo que si, pero como nunca hice algo parecido no tengo idea de como sería... eso si cuando lo logres postea la solución así todos aprendemos.

Saludos.

Otra vez yo... después de escribir lo anterior y mandarlo me dí cuenta que con la extensión CURL seguro que es mucho más fácil mejor. Con curl_setopt() puedes enviar los datos que necesites o setear todo aquello que quieras de una sesión CURL.

Saludos.

Última edición por GatorV; 15/07/2007 a las 12:26
  #3 (permalink)  
Antiguo 15/07/2007, 10:46
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: fopen - problemas!

Hola ^^

Investiga sobre CURL. Te permitirá obtener una url enviando las cabeceras de la solicitud e incluso leer las de la respuesta.

El problema de fopen es que solo te devuelve el resultado de la url, sin enviar cabeceras ni nada.

Espero qe te sirva.
Exitos.
  #4 (permalink)  
Antiguo 15/07/2007, 15:08
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Re: fopen - problemas!

Además, fopen() no sirve si el PHP del servidor tiene la flag "allow_url_fopen" en off
cURL y fsockopen() funcionan igual (ya que están diseñados para ello).
  #5 (permalink)  
Antiguo 15/07/2007, 15:40
 
Fecha de Ingreso: octubre-2006
Mensajes: 9
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: fopen - problemas!

Claro, si ya se algo de CURL .... y su funcion para enviar a coockie pero ahora no se como enviarla! :(

alguien sabe? si sabe porfavor que publique alguna funcione ya que he probado unas cuentas en inet que no me funcionan
  #6 (permalink)  
Antiguo 15/07/2007, 15:53
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: fopen - problemas!

si, mira
(esto esta hecho para hacer ping en servidores xml-rpc, pero verás que se puede adaptar muy facil)

Código PHP:
$request ="<?xml version="1.0\"?>\n<methodCall>\n  <methodName>weblogUpdates.ping</methodName>\n  <params>\n    <param>\n      <value>$ping_blog_title</value>\n    </param>\n    <param>\n      <value>http://www.cqblog.com.ar/$ping_blog/</value>\n    </param>\n  </params>\n</methodCall>";

$server["technorati"] = "http://rpc.technorati.com/rpc/ping";
$header["technorati"][] = "POST /rpc/ping HTTP/1.0";
$header["technorati"][] = "User-Agent: cqblog.com.ar";
$header["technorati"][] = "Host: rpc.technorati.com";
$header["technorati"][] = "Content-Type: text/xml";
$header["technorati"][] = "Content-length: ".strlen($request)."\r\n";
$header["technorati"][] = $request;
    
$server["weblogs"] = "http://rpc.weblogs.com/RPC2";
$header["weblogs"][] = "POST /RPC2 HTTP/1.0";
$header["weblogs"][] = "User-Agent: cqblog.com.ar";
$header["weblogs"][] = "Host: rpc.weblogs.com";
$header["weblogs"][] = "Content-Type: text/xml";
$header["weblogs"][] = "Content-length: ".strlen($request)."\r\n";
$header["weblogs"][] = $request;

foreach(
$server as $k=>$url) {
    if(
in_array($k,$ping_allow)) {
        
$ch curl_init();
        
curl_setopt$chCURLOPT_URL$url);
        
curl_setopt$chCURLOPT_RETURNTRANSFER1);
        
curl_setopt$chCURLOPT_HTTPHEADER$header[$k]);
        
curl_setopt$chCURLOPT_CUSTOMREQUEST'POST');
        
$result .= curl_exec$ch );
    }
}
fijate qe de hecho tiene definidos dos servidores para hacer la solicitud, con sus respectivos encabezados ^^

curl_init() inicializa curl
curl_setopt() establece las variables de la solicitud
y curl_exec() la ejecuta

exitos
  #7 (permalink)  
Antiguo 15/07/2007, 16:46
 
Fecha de Ingreso: octubre-2006
Mensajes: 9
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: fopen - problemas!

He podido entrar al area! me ayudo bastante el "Live HTTP Headers" con el pude saber exactamente que cookie se estaba enviando.. y enviarla

Ahora otra consulta:

Lo que retorna es el area de la pagina logeada... me gustaria resivirla en formato de texto html . ¿ Se puede ? alguna funcion! de CURL que la retorne en HTML y no graficamente!?

Algo asi como fgetss

Última edición por boadude; 15/07/2007 a las 16:54
  #8 (permalink)  
Antiguo 15/07/2007, 17:02
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: fopen - problemas!

Cita:
Iniciado por boadude Ver Mensaje
He podido entrar al area! me ayudo bastante el "Live HTTP Headers" con el pude saber exactamente que cookie se estaba enviando.. y enviarla

Ahora otra consulta:

Lo que retorna es el area de la pagina logeada... me gustaria resivirla en formato de texto html . ¿ Se puede ? alguna funcion! de CURL que la retorne en HTML y no graficamente!?

Algo asi como fgetss
Con la opción CURLOPT_RETURNTRANSFER seteas de que devuelva el resultado y que no lo imprima directamente.

Se agradecería que muestres como lo has solucionado para que sirva a otros usuarios.

Saludos.
  #9 (permalink)  
Antiguo 15/07/2007, 17:11
 
Fecha de Ingreso: octubre-2006
Mensajes: 9
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: fopen - problemas!

Código PHP:
<?php    
    $fp 
fopen("somefile.html""w");
        
$ch curl_init("url");

    
$cok 'cockie';
    
        
curl_setopt($chCURLOPT_USERAGENT$_SERVER['HTTP_USER_AGENT']);
        
curl_setopt($chCURLOPT_COOKIE$cok);
    
curl_setopt($chCURLOPT_FILE$fp);
    
       
curl_exec($ch);
       
curl_close ($ch);

?>
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 13:56.