Envoi d'informations POST ne marche pas, pourquoi ?
Giga_Boss
Membre
Bonjour,
je cherche à appliquer un tuto qui semble pas marcher.
Xcode :
PHP :
Problème :
Sur l'application, j'entre "test" en login et "test" en passe mais la réponse retournée est "Non", sur le document PHP j'ai modifié le script pour vérifier que le login et que le passe, le login me retourne toujours "Non" et le passe fonctionne et me retourne "Oui".
Le problème vient donc de "login".
Comment régler le problème ? Une idée ?
Merci beaucoup !
je cherche à appliquer un tuto qui semble pas marcher.
Xcode :
- (IBAction)valider:(id)sender<br />{<br /> NSString *post = [NSString stringWithFormat:@"login=%@ & passe=%@",<br /> [[login text] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],<br /> [[passe text] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];<br /> <br /> NSData *dataToSend = [NSData dataWithBytes:[post UTF8String] length:[post length]];<br /> <br /> NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.foxinteractive.fr/iphone/apl/connexion.php?mode=connexion"]];<br /> <br /> [request setHTTPMethod:@"POST"];<br /> [request setHTTPBody:dataToSend];<br /> <br /> NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];<br /> <br /> NSString *reponseServeur = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];<br /> <br /> [reponseServeur stringByReplacingOccurrencesOfString:@"\n" withString:@""];<br /> [reponseServeur stringByReplacingOccurrencesOfString:@" " withString:@""];<br /> <br /> NSLog(@"%@", reponseServeur);<br />}<br />
PHP :
<?php<br /><br />$mode = $_GET['mode'];<br /><br />if( $mode == 'connexion' )<br />{<br /> $login = $_POST['login'];<br /> $passe = $_POST['passe'];<br /> <br /> if( $login == 'test' && $passe == 'test' )<br /> {<br /> echo 'Oui';<br /> }<br /> else<br /> {<br /> echo 'Non';<br /> }<br />}<br /><br />?>
Problème :
Sur l'application, j'entre "test" en login et "test" en passe mais la réponse retournée est "Non", sur le document PHP j'ai modifié le script pour vérifier que le login et que le passe, le login me retourne toujours "Non" et le passe fonctionne et me retourne "Oui".
Le problème vient donc de "login".
Comment régler le problème ? Une idée ?
Merci beaucoup !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Ce qui veut dire que quand tu penses passer comme login "test" et comme mode de passe "test", cela passe [tt]"login=test & passe=test"[/tt]
Ce qui veut dire... que tu passes "test " comme login (oui, avec un espace à la fin), et que tu ne passes rien à la clé "passe", par contre... tu envoies la valeur "test" à la clé " passe" (oui, avec un espace au début) !
Autrement dit, ta variables $_POST de PHP vaut :
Il ne faut pas mettre d'espaces autour du "&", sinon ces espaces feront partie de la clé ou de la valeur passée dans l'URL !
Tu aurais pu t'en rendre compte en mettant quelques traces de debug dans ton PHP, genre
PS : Il est évident que passer un login/mot de passe par POST comme ça en clair est loin d'être sécurisé pour ton service je suppose que tu en as conscience Mais bon
Merci beaucoup !!