2012-12-08 30 views
0

我正在嘗試在我的網站上創建的一個php頁面和我寫的一個xcode項目中的一個NSData對象之間傳輸數據。 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 echo '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];   
    } 

} 

我想知道爲什麼響應對象包含整個PHP頁面,並且不應該顯示,「卓悅」的唯一一句話。

感謝您的答覆

回答

0

如果你只想要PHP位,刪除一切,這不是PHP的頁面上的其他人。您所做的請求會獲取該HTTP請求中的所有內容,而不僅僅是PHP位。這包括你在頁面上的HTML。

或者,使用JSON移動數據。 json_encode()它來自PHP端,然後使用類似JSONKit的東西在Xcode端進行解碼。

相關問題