2017-05-17 3 views
1

Ich habe Probleme mit meiner App, was ich versuche, einige Informationen aus meinen Textfeldern über eine "NSMutableURLRequest" URL zu einer PHP-Datei, die ich habe, zu senden.PHP POST + iOS Swift Fehler

Der Fehler sagt, es gibt undefinierte Indizes für jeden meiner Vars.

Dies ist das erste Mal, dass ich diese Art von Übungen mache, also weiß ich nicht, ob der Fehler in meinem PHP-Code oder in der Swift-Funktion ist.

Unten ist meine schnelle Funktion.

@IBAction func enviarInfo(_ sender: Any) { 
      let request = NSMutableURLRequest(url: NSURL(string: "http://www.mydomain/index.php")! as URL) 
      request.httpMethod = "POST" 


      //The String with the vars that will be sent to the $_POST["var"] 
      let postString = "nombre = \(nombreText.text!) &aPaterno = \(apaternoText.text!) &aMaterno = \(amaternoText.text!) &genero = \(genero.text!) &email = \(emailText.text!) &telefono = \(telefonoText.text!)" 


      request.httpBody = postString.data(using: String.Encoding.utf8) 

      let task = URLSession.shared.dataTask(with: request as URLRequest) { 
      data, response, error in 

      if error != nil { 
      print("error=\(String(describing: error))") 
      return 
      } 

      print("response = \(String(describing: response))") 

      let responseString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue) 
      print("responseString = \(String(describing: responseString))") 
      } 
     task.resume()  
    } 

Der PHP-Code sieht wie folgt aus

$nombre = $_POST["nombre"]; 
    //All the $vars look like this. 

    echo $nombre; 

ich Ihre Hilfe schätzen würde :)

+0

Haben Sie versucht, die Leerzeichen 'nombre = \ (...)' von Ihrem 'postString' zu entfernen? Sie können auch einen 'var_dump ($ _ POST)' ausführen, um zu sehen, was Sie tatsächlich erhalten. –

+0

Vielen Dank Magnus Ericsson! Es hat funktioniert! Hab nicht gedacht, dass der String von den Leerzeichen beeinflusst werden könnte –

Antwort

1

Sie müssen die Räume von Ihrem postString entfernen.

Wechsel:

let postString = "nombre = \(nombreText.text!) &aPaterno = ..." 

zu

let postString = "nombre=\(nombreText.text!)&aPaterno=..." ...and so on 

Wenn Daten wie das Senden, diese zusätzlichen Leerzeichen zählt, wenn die Zeichenfolge gets analysiert.