I did this several times before, but for some reason I canβt get a message to go through ... I tried a php script with variables set in _POST and without ... When they are not set for publication, it works fine. Here is my iOS code:
NSDate *workingTill = timePicker.date; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"HH:mm"]; NSString *time = [formatter stringFromDate:workingTill]; NSString *post = [NSString stringWithFormat:@"shift=%@&username=%@", time, usernameString]; NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO]; NSString *postLength = [NSString stringWithFormat:@"%d", [post length]]; NSURL *url = [NSURL URLWithString:@"http://wowow.php"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; [request setHTTPMethod:@"POST"]; NSLog(@"%@", post); [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; [request setHTTPBody:postData]; [NSURLConnection connectionWithRequest:request delegate:nil]; [self.navigationController popToRootViewControllerAnimated:YES];
And here is the php fragment, are the POST variables in the wrong place?
<?php function objectsIntoArray($arrObjData, $arrSkipIndices = array()) { $arrData = array(); // if input is object, convert into array if (is_object($arrObjData)) { $arrObjData = get_object_vars($arrObjData); } if (is_array($arrObjData)) { foreach ($arrObjData as $index => $value) { if (is_object($value) || is_array($value)) { $value = objectsIntoArray($value, $arrSkipIndices); // recursive call } if (in_array($index, $arrSkipIndices)) { continue; } $arrData[$index] = $value; } } return $arrData; } $newShift = $_POST('shift'); $bartenderUsername = $_POST('username'); mysql_connect("host", "name", "pw") or die(mysql_error()); mysql_select_db("harring4") or die(mysql_error()); $result = mysql_query("SELECT * FROM BartenderTable WHERE username='".$bartenderUsername."'") or die(mysql_error()); $row = mysql_fetch_array($result); $newfname = $row['fname'];
I assume this is a fairly simple answer to a more experienced developer, thanks for your help!
source share