我之前已经做了好几次了但是由于某些原因我无法通过这个帖子…我尝试了设置为_POST且没有的变量的PHP脚本……当它们未设置为发布时它工作精细.这是我的iOS代码:
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];
这里是PHP的一大块,POST变量不在正确的位置?
<?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'];
我想这对于更有经验的开发人员来说是一个相当简单的答案,感谢您的帮助!
解决方法
$_POST是一个数组,而不是一个函数.您需要使用方括号来访问数组索引:
$newShift = $_POST['shift']; $bartenderUsername = $_POST['username'];