El servidor recibe con éxito el inicio de sesión, la contraseña y CAPTCHA. ¿Cómo lo hago con una cookie?Cómo iniciar sesión con cURL con POST y Cookie
no sé qué información se necesita para la ayuda te muestro todo:
Formulario de acceso: Código
<div id="loginForm">
<div id="logo"><img src="logo.png" border="0" /></div>
<div class="loginBar">Login</div>
<form action="index.php" method="post">
<input type="hidden" name="p" value="login" />
<div class="line">
<label>Captcha</label>
<img src="captcha/securimage_show.php" border="0" />
</div>
<div class="line">
<label> </label>
<input type="text" name="captcha" value=""/>
</div>
<div class="line">
<label> </label>
<input type="submit" value="Login" />
</div>
</form>
<hr/>
<a href="index.php?p=register" class="register" title="Click to register">Register</a>
</div>
cURL:
extract($_POST);
//set POST variables
$proxy = '127.0.0.1:8118';
$url = 'http://example.com/index.php';
$fields_string= 'p=login&user=' . $user . '&pass=' . $passwd . '&captcha=' . $_POST['captcha'] . '&submit=Login';
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_PROXY, $proxy);
curl_setopt($ch,CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch,CURLOPT_COOKIEFILE, "cookie.txt");
//curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
//execute post
$result = curl_exec($ch);
print_r(curl_error($ch));
print_r(curl_getinfo($ch));
print_r(curl_errno($ch));
//close connection
curl_close($ch);
rizo getinfo:
[url] => http://example.com/index.php
[content_type] => text/html
[http_code] => 200
[header_size] => 415
[request_size] => 325
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 1.549389
[namelookup_time] => 3.7E-5
[connect_time] => 0.000138
[pretransfer_time] => 0.000142
[size_upload] => 62
[size_download] => 1585
[speed_download] => 1022
[speed_upload] => 40
[download_content_length] => 1585
[upload_content_length] => 0
[starttransfer_time] => 1.27051
[redirect_time] => 0
[certinfo] => Array ()
[redirect_url] =>
Galleta real:
Host: example.com
Name: PHPSESSID
Path: /
Content: 7qk7bb17nr030g5j59h2gq3nq6
Content raw: 7qk7bb17nr030g5j59h2gq3nq6
Expires: At end of session
Expires raw: 0
Send for: Any type of connection
Send for raw: false
Created: Fri 25 Nov 2011 10:37:24 PM EET
Created raw: 1322253443569272
Last accessed: Sat 26 Nov 2011 11:06:02 AM EET
Last accessed raw: 1322298361723991
HTTP only: No
HTTP only raw: false
This domain only: No
This domain only raw: false
Policy: no information available
Policy raw: 0
Status: no information available
Status raw: 0
---
archivo Gerenated por libcurl en cookie.txt:
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
example.com FALSE / FALSE 0 PHPSESSID crs9cm100agdfsujsncr964jg7
Cuando i ejecutar este código, Cuenta, exitosa y Passwd Captcha es recibida por el servidor, pero tienen errores con la galleta:
Asegúrate de haber habilitado las cookies
También vi esa galleta real Con carpa sin procesar es diferente generado con libcurl.
También vi que desde mi forma de capturar con éxito la cookie del servidor web.
PS !! Recibo cookie de este enlace en forma de entrada:
<img src="captcha/securimage_show.php" border="0" />
¿No fue exactamente esta misma pregunta hecha hoy? Parece que la pregunta original fue eliminada. Me pregunto qué le pasó porque obviamente es la misma pregunta y fuente. – davidethell
nadie responde ... simplemente traté de encontrar algunos consejos (pero también nosuccess. – Tedy
¿Ha intentado simplemente publicar sus datos en el sitio de destino directamente, en lugar de usar CURL (es decir, envolver su formulario en etiquetas de formulario y convertirlo en el objetivo? URL "http://example.com/index.php")? –