Question

J'essaie de publier des données de l'iPhone au serveur Web PHP. Voici mon code suivant:

NSString * fname = @"Brain.";
 NSString * location = @"Germany";

 NSString *post =[NSString stringWithFormat:@"fname=Test&location=Germany"];

 NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

 NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

 NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
 [request setURL:[NSURL URLWithString:@"http://frisbee.brianpagan.net/upload.php"]];
 [request setHTTPMethod:@"POST"];
 [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
 [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
 [request setHTTPBody:postData];

 NSError *error;
 NSURLResponse *response;
 NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
 NSString *data=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
 NSLog(data);


    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

La sortie de Windows Debugger:

Session started at 2010-03-12 00:03:04 +0100.]
2010-03-12 00:03:05.871 projectx[6357:20b] *** _NSAutoreleaseNoPool(): Object 0x3e061f0 of class NSCFString autoreleased with no pool in place - just leaking
Stack: (0x3226af 0x283e52 0x28e4da 0x23fe 0x238a)
2010-03-12 00:03:05.873 projectx[6357:20b] *** _NSAutoreleaseNoPool(): Object 0x3e07470 of class NSConcreteMutableData autoreleased with no pool in place - just leaking
Stack: (0x3226af 0x283e52 0x2c7a22 0x2428 0x238a)
2010-03-12 00:03:05.873 projectx[6357:20b] *** _NSAutoreleaseNoPool(): Object 0x3e07030 of class NSCFString autoreleased with no pool in place - just leaking
Stack: (0x3226af 0x283e52 0x28e4da 0x2470 0x238a)
2010-03-12 00:03:05.874 projectx[6357:20b] *** _NSAutoreleaseNoPool(): Object 0x3e07710 of class NSMutableURLRequest autoreleased with no pool in place - just leaking
Stack: (0x3226af 0x283e52 0x24bd 0x238a)
2010-03-12 00:03:05.877 projectx[6357:20b] *** _NSAutoreleaseNoPool(): Object 0x3e08e80 of class NSURL autoreleased with no pool in place - just leaking
Stack: (0x3226af 0x283e52 0x2c3891 0x24eb 0x238a)
2010-03-12 00:03:05.878 projectx[6357:20b] *** _NSAutoreleaseNoPool(): Object 0x3e099b0 of class NSCFString autoreleased with no pool in place - just leaking
Stack: (0x3226af 0x283e52 0x37e6d4 0x30a6a9 0x25ca 0x238a)
2010-03-12 00:03:05.880 projectx[6357:20b] *** _NSAutoreleaseNoPool(): Object 0x3e0a9a0 of class NSCFString autoreleased with no pool in place - just leaking
Stack: (0x3226af 0x283e52 0x382b13 0x37e6f0 0x30a6a9 0x25ca 0x238a)
2010-03-12 00:03:05.881 projectx[6357:20b] *** _NSAutoreleaseNoPool(): Object 0x3e0ab30 of class NSCFString autoreleased with no pool in place - just leaking
Stack: (0x3226af 0x283e52 0x37e726 0x30a6a9 0x25ca 0x238a)
2010-03-12 00:03:05.882 projectx[6357:20b] *** _NSAutoreleaseNoPool(): Object 0x3e0ab50 of class NSCFString autoreleased with no pool in place - just leaking
Stack: (0x3226af 0x283e52 0x2df953 0x37e742 0x30a6a9 0x25ca 0x238a)
2010-03-12 00:03:05.884 projectx[6357:20b] *** _NSAutoreleaseNoPool(): Object 0x3e0bd20 of class NSThread autoreleased with no pool in place - just leaking
Stack: (0x3226af 0x283e52 0x2893d4 0x2df65e 0x946ab89e 0x2e06f5 0x2f0411 0x2f02b3 0x2f0237 0x946ab89e 0x2f01e5 0x37e79c 0x30a6a9 0x25ca 0x238a)
2010-03-12 00:03:05.892 projectx[6357:20b] *** _NSAutoreleaseNoPool(): Object 0x3e0fb10 of class NSCFArray autoreleased with no pool in place - just leaking
Stack: (0x3226af 0x283e52 0x2df6b0 0x946ab89e 0x2e06f5 0x2f0411 0x2f02b3 0x2f0237 0x946ab89e 0x2f01e5 0x37e79c 0x30a6a9 0x25ca 0x238a)
2010-03-12 00:03:06.228 projectx[6357:20b] *** _NSAutoreleaseNoPool(): Object 0x3e10b90 of class NSHTTPURLResponse autoreleased with no pool in place - just leaking
Stack: (0x3226af 0x283e52 0x30a72f 0x25ca 0x238a)
2010-03-12 00:03:06.228 projectx[6357:20b] *** _NSAutoreleaseNoPool(): Object 0x3e0ff40 of class NSCFData autoreleased with no pool in place - just leaking
Stack: (0x3226af 0x283e52 0x30a7a3 0x25ca 0x238a)
2010-03-12 00:03:06.229 projectx[6357:20b] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>

<body>
Welcome Test!<br />
Your location is  Germany .
</body>

Cela semble fonctionner, puis je crée un PHP simple pour lire les données du post et les insérer dans MySQL:

Welcome <?php echo $_POST["fname"]; ?>!<br />
Your location is  <?php echo $_POST["location"]; ?> .
<?php $con = mysql_connect("localhost","root","");

if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
$FirstName =$_POST["fname"]; 
$location =$_POST["location"];

mysql_select_db("test", $con); //what is your database name, 
//Create a table call persons, or u can use any table 
mysql_query("INSERT INTO my_db (firstName, location) 
VALUES ($FirstName,$location)");


mysql_close($con);
?>

Mais la page n'affiche pas mes variables de poste. Et il n'est pas non plus inséré pour MySQL. Des idées? Merci

Pas de solution correcte

Autres conseils

La raison de vos erreurs est que vous essayez d'objectifs automatiquement avant d'avoir créé un pool d'autorelease.

Il semble que vous ayez placé votre code dans le fichier main.c. Avec les applications iPhone, vous ne voulez pas le faire, vous souhaitez placer votre code dans la classe du délégué d'application principale et vos classes créées. Je suggère de créer une application Hello World avant d'essayer quelque chose de plus compliqué:

http://www.tuaw.com/2009/04/27/iphone-dev-101-the-hello-world-app/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top