@ali.bayat
من میخوام یک عددی رو در شماره نظام پزشکی این سایت https://membersearch.irimc.org/ وارد کردم اطلاعات رو بهم نمایش بده الان مثلا عدد 65324 رو وارد کنم اطلاعات رو میده میشه بگید با کرل چطوی این کار رو انجام بدم ممنون میشم با مثال بگید میخوام کرل رو یاد بگیرم
ینی شما میخواین یه درخواست بفرستید به این صفحه و پاسخ بگیرید؟
اگه منظورتونو درست متوجه شده باشم، باید کرولر بنویسید، که به این صفحه درخواست بزنه و فرم رو سابمیت کنه و پاسخ بگیره، به نظرم با این بتونید این کارو انجام بدید
https://symfony.com/doc/current/components/domcrawler.html
قسمت فرمش رو مطالعه بفرمایید
یه همچین کاری رو من قبلا انجام دادم با این پکیج که به time.ir ریکوئست میفرستاد ولی فرم سابمیت نمیکرد،
https://roocket.ir/discuss/7548
@coaradsupp
من با کرل(curl) میخوام این قضیه رو حل کنم میشه راهنمایی کنید
شاید پاسخ شما همینجا باشد
@ali.bayat
@coaradsupp @mohsenbostan
من کدش رو نوشتم اما احتمالا یک توکن (RequestVerificationToken) داره اون رو نمیدونم چطوری بگیرم میشه راهنمایی کنید
در قسمت postfields یک توکن هست که هر دفعه عوض میشه اون رو چطوری باید بگیرم
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://membersearch.irimc.org/searchresult');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "__RequestVerificationToken=vaIcygH4xHXY3yU1b12TUKFb9MxBTuW98rslZDonosoU0xZTQKzMDmRlO-bIPS5xmfD-03skEAafpxKBYCM86L4-yEDMlEizNXHXNfSFtnA1&FirstName=&LastName=&Gender=&McCode=65324&DegreeField=&OfficeCity=&OfficeAddress=&g_recaptcha_response=03AGdBq26SdtzR57QDCyhs72YLb7Ml4mtkOmQOwzS_jZ-L5csytBuuqT8HSyWObG0sFBndbeS4Z6llYql8qpv0IFILW0zEerx-CWnYwMFWgKfDFItf1LM_OxFVehvAmFYyEk49CXj6syev2ddBuNeG4Fi16DOw3PTRaA4qUkh-SkfTgRZ7FLdAQUqa4k2pipJWlG3kwGhWG8-0mmljocQFHRxXjnGISLBCBvTzj7B544Z2YF0cGt7cFlLvXAKc3tGen8-hkOa9vy9Cx1BsBL3LfjHiabNCziq6Xu1gbZOkyz0E1DLoklOyXBGovCEvrqbHCNanMcB1CsYLeLEs1j3kkgc2d92Ct37rhB6P6kJuA9_w_B9zCT21Y9MCbptBTnEdcs-fucdq66zhigHycH6Rz_r9zZYxuqw5_Q");
curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
$headers = array();
$headers[] = 'Authority: membersearch.irimc.org';
$headers[] = 'Cache-Control: max-age=0';
$headers[] = 'Upgrade-Insecure-Requests: 1';
$headers[] = 'Origin: https://membersearch.irimc.org';
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
$headers[] = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36';
$headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9';
$headers[] = 'Sec-Fetch-Site: same-origin';
$headers[] = 'Sec-Fetch-Mode: navigate';
$headers[] = 'Sec-Fetch-User: ?1';
$headers[] = 'Sec-Fetch-Dest: document';
$headers[] = 'Referer: https://membersearch.irimc.org/';
$headers[] = 'Accept-Language: fa,en;q=0.9';
$headers[] = 'Cookie: _ga=GA1.2.1624413696.1588586881; __utma=128786644.1624413696.1588586881.1588586881.1588586881.1; __utmz=128786644.1588586881.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); __RequestVerificationToken=qsHBQZR3FJ1rSafIqmscznSq0Iqy-0iXPQe_ebFSFPIJcQbCZMralTSJ2m5XWFidlT-mQIJxPkFHKrHL1o7z-UpZpCw0ndbC9LRhXkvUZK01; cookiesession1=4973D017888GE8ETNKZRPT534BJGB74C; _gid=GA1.2.388215316.1589189862; ASP.NET_SessionId=rrqcrqumnsdpchioihzq3crn; _gat=1';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
return $result;@hesammousavi
@juza66
@ali.bayat
میشه راهنمایی کنید
همونطور که در لاراول CSRF توکن داریم
در C# هم RequestVerificationToken رو داریم..
برای جلوگیری از Cross-Site Request Forgery
وقتی که درخواستی یا ریکوئستی فرستاده میشه.. یه توکن در بدنه فرم قرار میدند
و یک توکن در سشن.
اگر این ۲ یکسان نباشه.. متوجه میشند که درخواست از سمت سیستم خودسون فرستاده نشده.
و این فیلد رو قرار دادند تا فقط درخواست هایی که از سمت سرور خودشون فرستاده میشه مجاز باشه..
به عبارت دیگه این کار رو کردند که شما از لوکیشن دیگه (از سایت خودت) نتونی از این سیستم استفاده کنی
@ali.bayat
علی اقا میدونم اما میگن راه داره میشه کاری کرد