Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/08/2009, 12:28
Avatar de cluster28
cluster28
 
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Acceso a http con Curl

Hola, me interesa aprender curl como sea ya que veo que una herramienta que para mi trabajo me puede ir de lujo. Ya hice un tema para ver si alguién tenía información acerca de curl pero nadie ha contestado (http://www.forosdelweb.com/f18/curl-715721/), entonces no me queda otra que la de experimentar. Lo primero que quiero hacer es loguearme en una aplicación interna HTTP. Las cabeceras del navegador cuando loguea una vez introducidos user y pass son:

http://sitio.lan/OUT/out_index.php

POST /OUT/out_index.php HTTP/1.1
Host: sitio.lan
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; es-ES; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://sitio.lan/OUT/out_index.php
Cookie: PHPSESSID=d7416tdp9jp6vf37msiuf4cr60
Content-Type: application/x-www-form-urlencoded
Content-Length: 44
txtLOGIN=usuario&txtCLAVE=password&sub=Entrar
HTTP/1.x 302 Found
Date: Wed, 12 Aug 2009 18:06:59 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: out_index.php
Content-Length: 0
Connection: close
Content-Type: text/html; charset=iso-8859-1

Pues teniendo esto he hecho dos pruebas con distinto código:

1ª:

Código PHP:
$ch curl_init();
curl_setopt($chCURLOPT_URL"http://sitio.lan/OUT/out_index.php");
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_setopt($chCURLOPT_USERPWD"usuario:password");
curl_setopt($chCURLOPT_HTTPAUTHCURLAUTH_BASIC);
$output curl_exec($ch);
curl_close($ch);
echo 
$output
y



Código PHP:
 $ch curl_init();
curl_setopt($chCURLOPT_URL"http://sitio.lan/OUT/out_index.php");
curl_setopt ($chCURLOPT_POST1); 
curl_setopt ($chCURLOPT_POSTFIELDS"txtLOGIN=usuario&txtCLAVE=password&sub=Entrar"); 
curl_setopt($ch,CURLOPT_REFERER'http://sitio.lan/OUT/out_index.php');
curl_setopt($chCURLOPT_RETURNTRANSFER1);
$output curl_exec($ch);
curl_close($ch);
echo 
$output
Lógicamente no loguea ninguna de las dos. Pongo que muestre la variable $output para comprobarlo pero sale la pantalla en blanco.

- Alguién sabe qué me falta o me sobra?
- La cookie para hacer el logueo no es necesaria verdad? Sólo para solicitar datos nuevos, no? Lo que no se es por qué sale en la cabecera de logueo ¿?

El funcionamiento lo entiendo pero no se aplicarlo.

Gracias.