 |
|
ใช้ฟังชั่น cUrl Login เข้าเว็บที่เป็น .jsp ได้ไหมครับ |
|
 |
|
|
 |
 |
|
สามารถทำได้เช่นกันครับ หลักการก็เหมือนกัน
อันนี้ตัวอย่าง การ login เข้าหน้า Asp.net จาก Server PHP
Code (PHP)
// Get View Stat
$ch = curl_init(ใส่ URL ที่ต้องการ);
// Fake Header
$header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
$header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: "; // browsers keep this blank.
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec ($ch);
// Get ViewStat
preg_match_all("/name=\"__VIEWSTATE\" id=\"__VIEWSTATE\" value=\"(.*?)\"/", $content, $arr_viewstate);
preg_match_all("/name=\"__EVENTVALIDATION\" id=\"__EVENTVALIDATION\" value=\"(.*?)\"/", $content, $arr_eventvalidation);
$viewstate = $arr_viewstate[1][0];
$eventvalidation = $arr_eventvalidation[1][0];
// Setting Post Fields
$fields = array(
'ctl00$ContentPlaceHolder1$txtName'=>urlencode($_POST["ctl00\$ContentPlaceHolder1\$txtName"]),
'ctl00$ContentPlaceHolder1$txtPass'=>urlencode($_POST["ctl00\$ContentPlaceHolder1\$txtPass"]),
'ctl00$ContentPlaceHolder1$btnSubmit'=>urlencode($_POST["ctl00\$ContentPlaceHolder1\$btnSubmit"]),
'__VIEWSTATE'=>$viewstate,
'__EVENTVALIDATION'=>$eventvalidation
);
foreach($fields as $key=>$value)
{
$fields_string .= $key.'='.urlencode($value).'&';
}
rtrim($fields_string,'&');
curl_setopt($ch,CURLOPT_URL,"ใส่ URL หน้า Login");
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
// Set Cookie
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
ได้ $result เอาไปใช้งานต่อ
รายละเอียดอื่นๆ ดูใน PHP manual นะครับ พยายามเข้าครับ ข้อควรระวัง curl บาง Server ไม่เปิดให้ใช้งานนะครับ
|
 |
 |
 |
 |
Date :
2010-12-22 00:33:24 |
By :
mandy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณสำหรับคำแนะนำและตัวอย่างนะครับ
แต่ถ้าผมต้องการให้มัน ล็อคอินอัตโนมัติ ผมต้องหากล่องใส่ ชื่อผู้ใช้ กับ รหัสผ่านให้มันอีกไหมครับ
หรือว่ามันสามารถหาได้เอง
|
 |
 |
 |
 |
Date :
2010-12-22 18:13:28 |
By :
santatiger |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ปกติก็จะสร้าง Form Login ไว้ที่ Domain ของเราเอง แต่เวลาประมวลผลก็ส่งไปยัง เว็บปลายทาง เช่น
ผมทำหน้า Login ไว้สำหรับเข้า Facebook ชื่อ facebook.php กับ Hotmail hotmail.php ที่หน้าเว็บของผมเอง ให้กรอก User กับ Pass ไว้ แต่ถ้าไม่สดวก อาจจะใส่ค่า username กับ password สำหรับเข้าใช้งานระบบต่างๆไว้ใน Code เลยก็ได้ครับ
อันนี้คือรับค่าจากการ post จาก form login ของเรา
'ctl00$ContentPlaceHolder1$txtName'=>urlencode($_POST["ctl00\$ContentPlaceHolder1\$txtName"]),
'ctl00$ContentPlaceHolder1$txtPass'=>urlencode($_POST["ctl00\$ContentPlaceHolder1\$txtPass"]),
อันนี้กรณี ใส่ user กับ pass ไว้เลย คือไม่ต้องใช้ form login สั่ง run script ก็ทำงานได้เลย ครับ
'ctl00$ContentPlaceHolder1$txtName'=>urlencode("myuser"),
'ctl00$ContentPlaceHolder1$txtPass'=>urlencode("mypass"),
|
 |
 |
 |
 |
Date :
2010-12-22 22:08:22 |
By :
mandy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอนนี้พอทำให้ Login เข้า Facebook หรือ Hotmail ได้แล้วครับ
แต่พวกที่เป็น Java ผมไปไม่ถูกเลยอ่ะ
อยากได้ตัวอย่างล็อคอินเว็บที่เป็น Java ซักอันนึงครับ
เอาแบบใช้กับเว็บที่ใช้ Java จริงๆเลยอ่ะครับ
แล้วถ้าผมอยากให้มันคลิกลิงค์เป็น Java นี้ต้องทำยังไงอ่ะครับ
ผมมุติผมอยากให้คลิก javascript:showUI_MMCC()
ที่ผมแกะมาได้มันเป็นแบบนี้อ่ะครับ href="javascript:showUI_MMCC()" class="style7"> คลิกๆ .........................
|
 |
 |
 |
 |
Date :
2010-12-31 13:35:17 |
By :
santatiger |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองส่งตัวอย่างหน้า login ของ JSP มาให้ได้ใหมครับเพื่อจะได้ตรวจดูว่าฝั่ง Server Request ค่า จาก Client มีอะไรบ้าง
|
 |
 |
 |
 |
Date :
2011-01-03 01:00:32 |
By :
mandy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มีตัวอย่าง 2 เว็บครับ
อันนี้แบบที่ 1
แบบที่ 2
ไม่รู้ว่า 2 เว็บนี้จะใช้สคริปเหมือนกันได้รึป่าวนะครับ
มีอีกเว็บนึงหาไม่เจอ >_<
|
 |
 |
 |
 |
Date :
2011-01-03 14:10:00 |
By :
santatiger |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมหา asp.net ไม่เจออ่ะครับ รบกวนด้วยครับ ฮือๆๆๆ หาเจอแล้วก็ยังไม่ได้อ่ะครับ
มันขึ้น "The state information is invalid for this page and might be corrupted." รบกวนใครมีลิงค์บอกด้วยนะครับ
ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2011-11-17 18:25:37 |
By :
diewd2a |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พยายาม login เข้า www.efinancethai.com แล้วได้ message ตามด้านล่าง จะแก้ยังไงดีครับ
ใช้ curl php เข้าระบบ login asp.net แล้วมันขึ้นตามข้างล่างนนี้นะครับ
Server Error in '/' Application.
--------------------------------------------------------------------------------
Invalid character in a Base-64 string.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.FormatException: Invalid character in a Base-64 string.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[FormatException: Invalid character in a Base-64 string.]
System.Convert.FromBase64String(String s) +0
System.Web.UI.LosFormatter.Deserialize(String input) +25
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +101
[HttpException (0x80004005): Invalid_Viewstate
Client IP: 125.24.71.11
Port: 54499
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)
ViewState: dDwxODM4ODk4MDYyO3Q8O2w8aTwxPjs... (จริงๆ มีตัวอักษรอะไรก็ไม่รู้ยาวมาก เลยตัดมานิดเดียวเพราะ ข้อความยาวไป)
Http-Referer: http://www.efinancethai.com/
Path: /index.aspx.]
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +442
System.Web.UI.Page.LoadPageViewState() +18
System.Web.UI.Page.ProcessRequestMain() +441
|
 |
 |
 |
 |
Date :
2011-11-21 04:55:14 |
By :
diewd2a |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|