title: Stumped: NSURLConnection + php - key/value format issue
body: <p>I'm stumped. Trying to post to a php script with NSURLConnection. Been at this all afternoon so I figured it's time to ask for help. I've read through lots of the posts here @ NSURLConnection but I still haven't figured out my error.</p>
  
  <p>I'm uploading an image, with two key/value pairs: <code>userfile</code> and <code>user</code>. The ObjC code I'm using is below. Log output shows the string (skipping the image data). I used the php script at the bottom for testing my server side php in the browser: it works fine. So I am screwing up in the ObjC code somehow.</p>
  
  <p>Anyone see where I am going wrong?</p>
  
  <p>//log output</p>
  
  <blockquote>
    <p>-----------------------------14737809831466499882746641449</p>
    
    <p>Content-Disposition: form-data;</p>
    
    <p>userfile=someImage&amp;user=sleepy;</p>
    
    <p>Content-Type: application/octet-stream</p>
  </blockquote>
  
  <p>//objC</p>
  
  <pre><code>NSData *imageData = UIImageJPEGRepresentation(img, .5);
  
  NSString *urlString = @"http://example.com/loader.php";
  NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
  
  [request setURL:[NSURL URLWithString:urlString]];
  [request setHTTPMethod:@"POST"];
  
  NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
  NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
  [request addValue:contentType forHTTPHeaderField: @"Content-Type"];
  
  NSMutableData *body = [NSMutableData data];
  [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];    
  [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; \r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
  
  NSString * user = @"sleepy";
  
  [body appendData:[[NSString stringWithString:@"userfile=someImage"] dataUsingEncoding:NSUTF8StringEncoding]];
  [body appendData:[[NSString stringWithFormat:@"&amp;user=%@;\r\n", user] dataUsingEncoding:NSUTF8StringEncoding]];
  [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
  
  NSString * testOutput = [[NSString alloc] initWithData:body encoding:NSUTF8StringEncoding];
  NSLog(testOutput); // log it
  
  [body appendData:[NSData dataWithData:imageData]];
  [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
  
  // setting the body of the post to the reqeust
  [request setHTTPBody:body];
  
  // now lets make the connection to the web
  [NSURLConnection
   sendAsynchronousRequest:request
   queue:[NSOperationQueue mainQueue]
   completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
  
       NSLog(@"Response: %@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
       [self.navigationController popToRootViewControllerAnimated:YES];
  
   }];
  </code></pre>
  
  <p>// browser</p>
  
  <pre><code>&lt;?php
  $directory_self = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);
  $uploadHandler = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'cuploader.php';
  
  ?&gt;&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd"&gt;
  
  &lt;html lang="en"&gt;
  &lt;head&gt;
      &lt;meta http-equiv="content-type" content="text/html; charset=iso-8859-1"&gt;
      &lt;link rel="stylesheet" type="text/css" href="stylesheet.css"&gt;
      &lt;title&gt;Upload form&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
  &lt;form id="Upload" action="&lt;?php echo $uploadHandler ?&gt;" enctype="multipart/form-data" method="post"&gt;
      &lt;h1&gt;
          Test 
      &lt;/h1&gt;
      &lt;p&gt;
          &lt;label for="userfile"&gt;File to upload:&lt;/label&gt;
          &lt;input id="userfile" type="text" name="userfile"&gt;
      &lt;/p&gt;
      &lt;p&gt;
          &lt;label for="user"&gt;User&lt;/label&gt;
          &lt;input id="user" type="text" name="user"&gt;
      &lt;/p&gt;
      &lt;p&gt;
          &lt;label for="submit"&gt;Press to...&lt;/label&gt;
          &lt;input id="submit" type="submit" name="submit" value="Upload me!"&gt;
      &lt;/p&gt;
  
  &lt;/form&gt;
  &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>