webForumDet fria alternativet

Posta ASP.NET Forumlär via Curl

PHPur PHP

3 svar · 601 visningar · startad av startail

Medlem sedan sep. 2000155 inlägg
Frågan#1

Jag har försökt få en sida som kör ASP.NET att posta tillbaka resultat till mig via Curl i PHP, men något stämmer inte helt eftersom jag inte förstår helt hur ASP.NET postar tillbaka till mig.

Jag har postat en post här tidigare på ett engelskt forum.

Vad jag försöker göra är att jag,
1. Säger till Curl att göra en GET på sidan "s2.aspx?page=pgStart" för att få ut ASP.NET hidden fields, såsom __VIEWSTATE och __EVENTVALIDATION.
2. Säger till Curl att göra en POST på sidan "s2.aspx?page=pgSearchResult" med ASP.NET fälten plus de fält som formuläret består utav med värden.

De fälten jag försöker posta med är dessa

ctl04$ucSimpleSearch$cmb_MarketPlace="0"
ctl04$ucSimpleSearch$cmb_SubGroup="0"
ctl04$ucSimpleSearch$cmb_RentLimit="0"
ctl04$ucSimpleSearch$cmb_SeekArea="0"

Postningen i sig är inget fel på, men jag får inte tillbaka några resultat utav sidan, såsom man får när man gör det manuellt på webben.

Min kod för att göra en POST/GET via Curl ser ut såhär, men borde inte vara några fel på

class getPage
{
	var $ch = NULL;
	function __construct()
	{
		$this->ch = curl_init();
	}

	function curlPage($page, $type="GET", $data=NULL)
	{
		$agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)\r\n";
		$url = "{$page['domain']}/{$page['uri']}";

		echo $url."\n\r";

		if(is_array($data))
			{
				foreach($data AS $key => $val){
					$values .= urlencode($key) . "=" . urlencode($val) . "&";
				}
			} else { $values = NULL; }

		$values = substr( $values, 0, -1 );
		if($type == "GET")
		{
			if($values != "")
				$url = strstr($values, "?") ? "$url&$values" : "$url&$values";
		}

		// Set cURL Specs
		curl_setopt($this->ch, CURLOPT_URL, $url); 			// HTTP URI
		curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1); 	// Skriv inte ut data på skärmen
		#curl_setopt($this->ch, CURLOPT_USERAGENT, $agent);	// Skicka Useragent
		curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, 1);	// Följ HTTP Header Location
		curl_setopt($this->ch, CURLOPT_COOKIEJAR, "cookie");	// Skriv Cookie Fil
		curl_setopt($this->ch, CURLOPT_COOKIEFILE, "cookie"); // Läs Cookie Fil
		curl_setopt($this->ch, CURLOPT_VERBOSE, 1);
		curl_setopt($this->ch, CURLOPT_POST, 0);
		if($type == "POST")
		{
			curl_setopt($this->ch, CURLOPT_POST, true); 				// Gör en standard POST (application/x-www-form-urlencoded)
			curl_setopt($this->ch, CURLOPT_POSTFIELDS, $values);		// Data att skicka till POST formet 
		}

			
		$temp = curl_exec($this->ch); // Utför POST/GET
		$temp = utf8_encode($temp);
		#print_r($values);
		#print($temp);

		return $temp;
	}
}

Jag har försökt med flera olika sätt att göra detta på, men inget verkar fungera.

Är det någon som har någon erfarenhet utav detta, eller som har någon idé på hur man kan lösa det på?

Mycket tacksam för svar

Medlem sedan juni 20019 024 inlägg
#2

Det går inte. Precis som jag skrev två gånger innan:

http://www.webforum.nu/showthread.php?p=1371341#post1371341

Medlem sedan sep. 2000155 inlägg
#3

Jag har redan lyckats göra detta mot en annan ASP.NET sida, men denna har dock ingen ASP.NET Session och resultatet hamnar på samma sida som man postar till. Så det fungerar på en sida, men jag förstår inte vad som gör att det inte fungerar på en annan sida.

Medlem sedan juni 20019 024 inlägg
133 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)