title: PHP curl - posting asp.net viewstate value
body: <p>I have the following code to login into an external site application (asp.net app) from a local site login form (written in php):</p>
  
  <pre><code>&lt;?php
  $curl_connection = curl_init('www.external.com/login.aspx');
  
  curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
  curl_setopt($curl_connection, CURLOPT_USERAGENT,
  "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
  curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
  
  // Post data array
  $post_data['LoginControl$UserName'] = 'ExampleUName';
  $post_data['LoginControl$Password'] = 'ExamplePWord';
  
  // Add form fields into an array to get ready to post
  foreach ($post_data as $key =&gt; $value) 
    {
  $post_items[] = $key . '=' . $value;
    }
  $post_string = implode ('&amp;', $post_items);
  
  // Tell cURL which string to post
  curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
  
  // Execute and post
  $result = curl_exec($curl_connection);
  ?&gt;
  </code></pre>
  
  <p>I get directed to the login form of the external site instead of being directed to the application logged in. I think the problem is that I need to pass the viewstate values through, but i'm not sure how to go about doing that?</p>
  
  <p>I don't have control over the external application. But we want users to be able to login to the application through our website, to maintain branding etc.</p>
  
  <p>I've posted a couple of other threads recently about the use of php cURL, but I'm at the stage now where I think the viewstate is the problem ...</p>
  
  <p>Thanks, Mark.</p>