2015-11-11 2 views
0

Почему мои параметры vistor_name и vistor_email не переносятся через PHP?Почему PHP-код не отвечает на параметр UITextField в SWIFT?

Когда получил тело выглядит следующим образом:

Name: 
Email: 

Это мой SWIFT код:

@IBOutlet weak var nameField: UITextField! 
@IBOutlet weak var ageField: UITextField! 
@IBAction func sendButton(sender: AnyObject) { 
     sendToPhp() 
    } 

func sendToPhp() { 
     let session = NSURLSession.sharedSession() 
     let urlString = "http://sitename.com/fromswift.php" 
     let url = NSURL(string: urlString) 
     let request:NSMutableURLRequest = NSMutableURLRequest(URL: url!) 
     let parameter: NSString = NSString(string: "visitor_name=\(nameField.text), visitor_email=\(ageField.text)") 
     request.HTTPMethod = "POST" 
     request.HTTPBody = parameter.dataUsingEncoding(NSUTF8StringEncoding) 
     session.dataTaskWithRequest(request) { (data:NSData?, response:NSURLResponse?, error:NSError?) -> Void in 
      print("done, error: \(error)") 
     } 

     print(bodyData) 

    } 

и это мой PHP код:

<?php 
$msg = 'Name: ' .$_POST['visitor_name'] ."\n" 
    .'Email: ' .$_POST['visitor_email'] ."\n" 
    mail('[email protected]', 'FeedBack from: me', $msg); 
?> 
+0

Можете ли вы попробовать $ msg = var_export ($ _ POST, true); - это покажет, какие (если есть) переменные отправляются. Если он пуст, вам может потребоваться добавить: request.setValue («application/x-www-form-urlencoded», forHTTPHeaderField: «Content-Type») – Maltronic

+0

@Goat Master Я пробовал, и он был пуст. Я добавил: «request.setValue (« application/x-www-form-urlencoded », forHTTPHeaderField:« Content-Type »)« все равно ничего не происходит » – hdjkshdak

+0

Строка параметров должна включать кавычки вокруг переменных' UITextField': 'visitor_name = \" \ (nameField.text) \ "' – RichAppz

ответ

1

Вы забыли начать задание. И я предполагаю, что это причина ... Пойдем следующим образом.

   let task = session.dataTaskWithRequest(request, completionHandler: {(data, response ,error) in 
        if let response = response { 

        } 
       }) 
       task.resume() 

Вы можете обратиться к link для получения дополнительной информации.

Надеюсь, что это поможет. С уважением.

+0

Спасибо, это работает! @ PK20 – hdjkshdak

Смежные вопросы