Alors, voilà, je suis en train de développer une application qui possède un espace membre et je rencontre un petit dilemme.
De nombreux tutoriels existent en rapport avec le traitement d'une base de donnée depuis l'iPhone.
Au début mon dilemme était simple, j'hésitais entre connecté mon application à la base de données (ce qui voulait dire : mettre les identifiants de ma base données dans l'application) et faire un petit fichier php pour effectuer mes actions.
J'ai donc opté pour la deuxième (beaucoup plus sécurisée).
J'ai donc fait ce genre de code :
NSString *strUrl = [[NSString alloc] initWithFormat:@"http://monserver.fr/login.php?username=%@&password=%@", user, pass]; NSURL *url = [[NSURL alloc] initWithString:strUrl]; NSData *datas = [[NSData alloc] initWithContentsOfURL:url]; NSString *str = [[NSString alloc] initWithData:datas encoding:NSASCIIStringEncoding];La variable "str" contenait alors tout ce que ma requête avait retourné.
Mon projet est maintenant beaucoup ambitieux et je le veux beaucoup plus sécurisé. J'ai fait de nombreuses recherches et suis tombé sur de nombreuses façons de faire ces GET et POST, mais je ne sais pas laquelle est la mieux.
Je vais donc expliquer ce que signifie pour moi "mieux" car c'est un peu vague, tout dépends de ce que l'on recherche.
Il me faut une façon de faire qui serait tout d'abord sécurisée, ensuite il faudrait que je puisse savoir le statut de l'action (si la requête a bien été faite, si elle a bien retourné quelque chose ...).
Car lors de mon dernier projet, avec la méthode ci-dessus, il arrivait que lorsque beaucoup de monde était connecté et faisaient des requêtes l'une d'entre elles ne s'effectuaient pas et alors cela faussait tout.
Je veux donc une autre méthode que celle utilisée ci-dessus.
J'ai déjà fait pas mal de recherche et j'ai mis la main sur les NSURLConnection je reçois grâce à cette technique des infos sur le statut de la requête (ReceiveData, FailWithError, FinishLoading...) cependant je voulais savoir est-ce que c'était la meilleure solution ?
Voilà mon code avec cette méthode :
NSString *strUrl = [[NSString alloc] initWithFormat:@"http://monserver.fr/login.php?username=%@&password=%@", user, pass];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:strUrl] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:8];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self];
if (!connection) {
//Erreur dans la création de la NSURLConnection
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Erreur" message:@"Echec de Connexion" delegate:self cancelButtonTitle:@"Zut !" otherButtonTitles:nil];
[alert show];
[alert release];
}
else {[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];}Grâce a cette méthode j'ai un timeoutInterval et des fonctions me permettant de savoir l'état de la requête.Mais est-ce bien sécurisé d'envoyer des infos comme ça ? J'ai vu d'autres façons de faire en utilisant des setHTTPMethod:@"POST" ...
Bref, quelle est selon-vous la meilleure méthode ?
Merci d'avance.













