Máy chủ nhận thành công đăng nhập, mật khẩu và CAPTCHA. Làm thế nào để tôi làm điều đó với một cookie?Cách đăng nhập bằng cURL với POST và Cookie
Tôi không biết những gì thông tin là cần thiết để được giúp đỡ tôi sẽ chỉ cho tất cả:
Form Login: Mã
<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);
curl 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] =>
Cookie thực:
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
---
tập tin Gerenated bởi libcurl trong 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
Khi tôi chạy mã này, tài khoản, Pass và Captcha thành công được nhận bởi máy chủ, nhưng có lỗi với cookie:
Đảm bảo bạn đã bật cookie
Ngoài ra tôi đã thấy cookie thực Con lều thô là khác nhau bằng cách tạo ra với libcurl.
Ngoài ra tôi thấy rằng từ biểu mẫu của tôi, tôi đã bắt được cookie máy chủ web thành công.
PS !! Tôi nhận cookie từ liên kết này trong mẫu đăng nhập:
<img src="captcha/securimage_show.php" border="0" />
Không phải chính câu hỏi này đã được hỏi trước đó chưa? Có vẻ như câu hỏi ban đầu đã bị xóa. Chỉ cần tự hỏi những gì đã xảy ra với nó bởi vì nó rõ ràng là cùng một câu hỏi và nguồn chính xác. – davidethell
không ai trả lời .. tôi chỉ cố gắng tìm một số mẹo (nhưng cũng không phải là nosuccess – Tedy
Bạn đã thử đăng trực tiếp dữ liệu của mình lên trang đích, thay vì sử dụng CURL (IE, hãy bọc biểu mẫu của bạn trong thẻ biểu mẫu và đặt mục tiêu URL "http://example.com/index.php")? –