2010-11-25 5 views

Antwort

1

Erstellen Sie einen einfachen Webdienst, der die Parameter übernimmt, die Sie übergeben müssen, und fügt sie zu einer Datenbank hinzu. Hier ist ein einfaches Beispiel mit PHP, um einen Benutzernamen und ein Passwort in einer MySQL-Datenbank zu speichern. Darunter finden Sie, wie es von einer POST-Anforderung innerhalb der App senden mit:

<? 

// check if email and password are not blank 
if(trim($_POST['email']) != '' && trim($_POST['password']) != '') 
{ 
    $emailQuery = strtolower(mysql_real_escape_string($_POST['email'])); 
    $passwordQuery = md5($_POST['password']); 
    $host = 'localhost'; 
    $dbuser = 'username'; 
    $dbpassword = 'password'; 
    $dbname = 'databasename'; 

    /* connect to the db */ 
    $link = mysql_connect($host,$dbuser,$dbpassword) or die ('Cannot connect to the DB'); 
    mysql_select_db($dbname,$link) or die('Cannot select the DB'); 

    /* insert the data into the db */ 
    $query = "INSERT INTO members VALUES ('','$emailQuery','$passwordQuery')"; 
    mysql_query($query) or die('Errant query: '.$query); 
    echo "Database updated"; 
    @mysql_close($link); 

} else echo "Mandatory parameters missing"; 

?> 

Dann aus dem App Sie die Post-Anforderung unter Verwendung NSURLConnection senden können. Ich verwende eine synchrone Anforderung aus Gründen der Einfachheit aber empfehlen, dass Sie in der Dokumentation zu NSURLConnection überprüfen und wie asynchrone Anforderungen umzusetzen und die Reaktion durch Delegatmethoden lesen:

// login and password are both UITextField instances 
     NSString *myRequestString = [NSString stringWithFormat:@"email=%@&password=%@",self.login.text, self.password.text]; 
    NSData *myRequestData = [NSData dataWithBytes:[myRequestString UTF8String] length:[myRequestString length]]; 
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://domain.com/webservice.php"]]; 
    [request setHTTPMethod: @"POST"]; 
    [request setHTTPBody: myRequestData]; 
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; 
     // To see what the response from your server is, NSLog returnString to the console or use it whichever way you want it. 
    NSLog (@"%@", returnString); 

Ich hoffe, es hilft. Rog

+0

Danke für den detaillierten Code Rog! – meetpd

0

App-Richtlinien 17.2 besagt, dass Apps, die nach persönlichen Informationen des Benutzers (wie E-Mail und Geburtstag) fragen, abgelehnt werden.

+2

Ihr Angebot ist ungenau, hier ist, was Apple zu sagen hat: "Apps, die Benutzer benötigen, um persönliche Informationen, wie E-Mail-Adresse und Geburtsdatum, zu teilen, werden abgelehnt". Das Schlüsselwort lautet "IN DER ORDNUNG, UM ZU FUNKTIONIEREN". – Rog

0

Der einfachste Weg (aber wie Eimantas gesagt hat, dass es abgelehnt wird), ist eine http get Anfrage an eine PHP-Datei auf Ihrem Webserver mit like * url = www.example.com/myiphonescript.php?q=%@ , Suchbegriff. searchTerm ist Ihre Textfeldeingabe. Dann speichere diesen Wert im PHP Skript in eine DB oder was auch immer du damit machen willst!