2012-12-04 28 views
0

我正在尝试在我的网站上创建的php页面和我写的xcode项目中的NSData对象之间传输数据。 PHP页面非常简单,它得到:php页面和xcode项目之间的数据传输

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> 
     <head> 
      <title>Mon MEGA BLOG</title> 
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
     </head> 
     <style type="text/css"> 
    form 
     { 
      text-align:center; 
     } 
    </style> 


    <body> 

<?php 'Bonjour'; ?> 

</body> 
</html> 

我想“卓悦”被转移到我的数据对象。从现在开始,通过$ _GET方法发送特定对象是没有问题的(尽管它已经在下面的代码中准备好了)。我只想用echo函数测试我的php页面的响应。我的Xcode项目进展:

if(![loginText.text isEqualToString:@""] && ![passwordText.text isEqualToString:@""]) 
    { 
     //1. creation de la request 
     NSMutableString *string = [[NSMutableString alloc] initWithCapacity:200]; 
     NSString *string01 = @"http://attheshop.fr/index.php?prof=&pass="; 

     [string appendFormat:string01]; 
     NSString *string02 = loginText.text; 
     NSString *string03 = passwordText.text; 

     [string insertString:string03 atIndex:41]; 
     [string insertString:string02 atIndex:36]; 

     request01 =[NSURLRequest requestWithURL:[NSURL URLWithString:string]cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; 

     NSLog(@"%@", string); 
     //2.creation de la connection et start loading data 

     NSURLConnection *connection01 = [[NSURLConnection alloc] initWithRequest:request01 delegate:self]; 

     if(connection01) 
     { 
     //3.Create NSMutableData to receive data 
     receivedData = [NSMutableData data]; 
      NSLog(@"Voici ce que contient le message %@", receivedData.description); 
     } 

    } 
} 
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{ 
    // This method is called when the server has determined that it // has enough information to create the NSURLResponse. 
    // It can be called multiple times, for example in the case of a // redirect, so each time we reset the data. 
    // receivedData is an instance variable declared elsewhere. 
    [receivedData setLength:0]; 
} 

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
    // Append the new data to receivedData. // receivedData is an instance variable declared elsewhere. 
    [receivedData appendData:data]; 
} 

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 
{ 

    // release the connection, and the data object 
    // inform the user 

    NSLog(@"Connection failed! Error - %@ %@",[error localizedDescription], [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]); 

    //set an alert 
    UIAlertView *alert01 = [[UIAlertView alloc] initWithTitle:@"Probleme de connexion" message:@"La connexion a échoué" delegate:self cancelButtonTitle:@"Recommençer" otherButtonTitles:nil]; 
    alert01.alertViewStyle = UIAlertViewStyleDefault; 
    [alert01 show]; 
} 


- (void)connectionDidFinishLoading:(NSURLConnection *)connection { 

    // do something with the data // receivedData is declared as a method instance elsewhere 

    NSLog(@"Succeeded! Received %d bytes of data",[receivedData length]); 

    //6.Mettre les informations téléchargées dans un objet data envoyé à home. 

    NSData *response = [NSURLConnection sendSynchronousRequest:request01 returningResponse:nil error:nil]; 
    //NSLog(@"response %@", response.description); 

    NSString *get = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]; 
    NSLog(@"get %@", get.description); 

    NSString *string04 = @"error"; 
    NSPredicate *errorTest = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@", string04]; 
    BOOL defError = [errorTest evaluateWithObject:get]; 

    NSLog(@"%i",defError); 

    if (!defError) 
    { 
     //Si pas d'erreur, on lance le segue 
     [self performSegueWithIdentifier:@"loginMainSegue" sender:self]; 
    } 

    //5.Si mauvais login ou password message alerte erreur 

    if (defError) 
    { 
     UIAlertView *alert02 = [[UIAlertView alloc] initWithTitle:@"Erreur" message:@"Votre login ou votre password est erroné" delegate:self cancelButtonTitle:@"Recommençer" otherButtonTitles:nil]; 
     alert02.alertViewStyle = UIAlertViewStyleDefault; 
     [alert02 show];   
    } 

} 

在我的输出画面让我得到以下结果结束: - receivedData.description =什么(我想有“卓悦”) - get.description =完整的PHP页面,这表明交换发生了。

你能帮我看看我的代码出了什么问题吗?

谢谢

回答

1

简单地调用<?php 'Bonjour' ?>不会显示任何你需要echo的字符串。

例如

<?php echo 'Bonjour'; ?> 

,或者使用新的PHP语法

<?='Bonjour'?> 
+0

<?=是用于回波的简写,但不一定是新。 +虽然 –

+0

谢谢,只是拼写错误。但它仍然不能正常工作 –

+0

您是否可以通过打印响应内容来验证xcode项目在HTML中接收到的内容@Vicolapatate –