Проблемы с получением простого POST из Objective C в PHP работают - PullRequest
1 голос
/ 04 ноября 2010

Я совершенно новичок в PHP, но это кажется таким простым, мне не кажется, что я могу все испортить, если я ПОЛНОСТЬЮ не пойму, как все это работает.

Objective-C:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"http://myurl.com"]];
[request setPostValue:@"test value A" forKey:@"testA"];
[request setPostValue:@"test value B" forKey:@"testB"];
[request setDelegate:self.delegate];
[request startAsynchronous];

PHP:

<?php
    $testValueA = $_POST['testA'];
    $testValueB = $_POST['testB'];

    echo "Value A = $testValueA, Value B = $testValueB";
?>

Когда я NSLog возвращаю строку из request, я получаю Value A = Value B =. Это ошибка в моей плохо понятой реализации PHP, или есть проблема с Objective-C?

- EDIT -

print_r($_POST), var_dump($_POST) и $HTTP_RAW_POST_DATA все ничего не возвращают. Итак, я предполагаю, что проблема заключается в ASIFormDataRequest?

- РЕДАКТИРОВАТЬ 2 -

Сбрасывает заголовки из ответа:

Connection = "Keep-Alive";
"Content-Type" = "text/html";
Date = "Thu, 04 Nov 2010 20:05:39 GMT";
"Keep-Alive" = "timeout=2, max=199";
Server = Apache;
"Transfer-Encoding" = Identity;
"X-Powered-By" = "PHP/5.2.14";

Не уверен, что делать с этой информацией.

- Правка 3 -

Получение этого сообщения журнала из файла ошибок:

"(Notice) Undefined index: testA"

Также один для testB

Ответы [ 4 ]

0 голосов
/ 09 ноября 2010

Похоже, что перенаправление происходило без моего ведома (с http://www.mysite.com до http://www.mysite.com/), и он терял там данные POST.Спасибо всем за попытку помочь отладить это.

0 голосов
/ 04 ноября 2010

Дикая догадка, нужен ли для запроса Obj-C сообщение "отправить" или что-то?Обычно в ООП вы что-то создаете, а потом говорите, что действуете.Может быть, это то, чего не хватает.

0 голосов
/ 04 ноября 2010

Также зависит от того, как PHP выполняется на сервере (через CGI или обработчик Apache).В случае, если это CGI, вы можете попробовать это:

<?php
$data = file_get_contents(STDIN);
parse_str($data, $_POST);
// ... your code
0 голосов
/ 04 ноября 2010

Не слишком знаком с C, но попробуйте изменить

echo "Value A = $testValueA, Value B = $testValueB";

на

echo "Value A = " . $testValueA . ", Value B = " . $testValueB;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...