2016-07-05 47 views
0

Ich möchte ein Kontaktformular erstellen, wo der Benutzer mir eine Nachricht hinterlassen kann (und Name und Telefonnummer ...) und es mir senden.Kontaktformular für iOS-App mit Swift und PHP erstellen

Aber ich weiß nicht, wie man das macht, weil ich noch nie mit solchen Gedanken beschäftigt war.

Mein eigener Vorschlag ist, $ _POST den Inhalt von TextField und TextView zu einem PHP-Skript auf meinem Server. Dies wird den Inhalt behandeln. (Entweder sende mir eine Email mit mail() oder speichere sie in einer Datei auf dem Server. Das PHP Script ist für mich kein Problem.)

Ist das vernünftig? Was ist der übliche Weg dies zu tun, um ein Feedback oder etwas Ähnliches dem Entwickler zu hinterlassen?

P.S. Ich weiß, dass der Nutzer mir eine E-Mail aus der App senden kann. Aber ich mag diesen Weg nicht.

Antwort

0

Das scheint mir vernünftig. Sie könnten nur eine Funktion in schnellen schreiben wie so erhalten oder senden Sie Parameter senden an:

func postParamRequest(resourceURL: String, postData: String, completionHandler: ((NSURLResponse?, NSData?, NSError?) -> Void)) { 

    let request : NSMutableURLRequest = NSMutableURLRequest() 
    request.URL = NSURL(string: resourceURL) 
    request.HTTPMethod = "POST" 
    request.setValue("application/x-www-form-urlencoded; charset=utf-8", forHTTPHeaderField: "Content-Type") 
    request.HTTPBody = postData.dataUsingEncoding(NSUTF8StringEncoding) 


    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue(), completionHandler:{ (response:NSURLResponse?, data: NSData?, error: NSError?) in 
     completionHandler(response, data, error) 
    }) 

} 

Sie können diese Funktion dann rufen Sie einfach und den Rückruf der Antwort, Daten erhalten, und etwaige Fehler zu (die postData sollte [key: value]) für die POST-Parameter sein. Wie so:

postParamRequest("theUrlToYourScript", postData: "key1=value&key2=value&key3=value") { (response, data, error) in 
      print(data) 
} 

In Ihrer PHP-Skript können Sie dann die Daten mit etwas wie folgt abrufen: $_POST["paramName"].

+0

Hallo, danke für deine Antwort. Aber ich verstehe den Code nicht wirklich. Was ist "Anwendung/x-www-form-urlencoded"? –

+0

@David es sagt, dass die HTTP-Anfrage ein Formular sein sollte codiert (Post-Parameter) wie ein HTML-Formular senden würde. Sie geben der Seite lediglich Anweisungen, dass es sich bei der Anfrage um Formularparameter handelt. – modesitt

+0

Ich habe die Benutzerschnittstelle in meinem ViewController erstellt und einige Outlets wie folgt erstellt: '@IBOutlet var nameField: UITextField!'. Ich fügte auch deinen Code unter dieser Aktion hinzu, die mit der Absenden-Schaltfläche in der Benutzeroberfläche verbunden ist: '@IBAction func submit (sender: AnyObject)' –