PHP - Acceder al foro por medio de cURL

 
Vista:

Acceder al foro por medio de cURL

Publicado por masterenwe (1 intervención) el 03/01/2013 22:17:59
Hola como estan gente del foro.

Tengo un inconveniente que ahun no eh podido resolver, en una página tengo un linck que habre otra pestaña de un foro SMF. Tengo un bot (robot) que por medio de cURL quiero acceder al foro, le paso el usuario la clave, y las cookies, la primera ves se loguea pero al hacer click en cualquier menu me pide volver a identificarme.
Dejo el archivo bot para ver si alguien puede darme alguna ayuda..

desde ya muchas gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
header('Content-Type: text/html; charset=UTF-8');
 
//Iniciar sesión y guardar cookies
$cookie_file = "/tmp/".time();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost/smf/index.php');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0');
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept-Language: es-es,en"));
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
 
//Guardar pagina
$result = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
 
//Parsear
preg_match_all("(<br>
<div class=\"info\">Ingresar con nombre de usuario, contraseña y duración de la sesión</div>
<input type=\"hidden\" value=\"(.*)\" name=\"hash_passwrd\">)siU", $result, $matches1);
print_r($matches1);
$valor = trim($matches1[1][0]);
$parametros_post = 'user='.urlencode("prueba").'&passwrd='.urlencode("pruebaprueba").'&cookielength='.urlencode("-1").'&hash_passwrd='.urlencode($valor).'&submit'.urlencode("Ingresar");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost/smf/index.php?action=login2');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0');
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept-Language: es-es,en"));
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $parametros_post);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);

//Guardar pagina
$result = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
echo($result);

?>


Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder