Próbuję następujący kod, który wykonuje po wprowadzeniu danych przez użytkownika w polach (tytuł, opis, miasto), a następnie kliknięć Zapisz.przesyłaj dane do skryptu PHP z iOS
- (IBAction)saveDataAction:(id)sender {
NSString *lEventTitle = [NSString stringWithFormat:@"var=%@",eventTitle.text];
NSString *lEventDesc = [NSString stringWithFormat:@"var=%@",eventDescription.text];
NSString *lEventCity = [NSString stringWithFormat:@"var=%@",eventCity.text];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://mydomain.com/ios/form.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
//this is hard coded based on your suggested values, obviously you'd probably need to make this more dynamic based on your application's specific data to send
NSString *postString = [[NSString alloc] initWithFormat:@"title=%@&description=%@&city=%@", lEventTitle, lEventDesc, lEventCity];
NSString *clearPost = [postString
stringByReplacingOccurrencesOfString:@"var=" withString:@""];
NSLog(@"%@", clearPost);
[request setHTTPBody:[clearPost dataUsingEncoding:NSUTF8StringEncoding]];
[request setValue:clearPost forHTTPHeaderField:@"Content-Length"];
[NSURLConnection connectionWithRequest:request delegate:self];
NSLog(@"%@", request);
}
Kiedy NSLog ciąg clearPost (string zawierający zmienne należy przesłać do serwera), to pokazuje:
title=xmas&description=Celebration&city=NY
na koniec PHP, mam proste:
<?php
$title = $_POST['title'];
$description = $_POST['description'];
$city = $_POST['city'];
echo "Title: ". $title;
echo "Description: ". $description;
echo "City: ". $city;
?>
Po prostu próbuję uzyskać dane na PHP, aby później móc nim manipulować. Teraz, gdy wykonuję
domain.com/ios/form.php, pokazuje tytuł, opis i miasto puste.
Przepraszam, ale jestem bardzo nowy w iOS i Objective-C.
1. A jakie jest pytanie? 2. Dodajesz część 'name =' dwa razy do każdej zmiennej POSTed: raz w pierwszych trzech liniach swojej metody, a następnie podczas tworzenia 'postString'. –
Zmienione pytania zostały zmienione –
IOS 9 wprowadził ATS i nie zezwala na normalne żądania HTTP bez umieszczenia ich na białej liście. Kredyt: (http://stackoverflow.com/a/30732693/6042879) –