2013-03-23 7 views
9

से PHP स्क्रिप्ट पर पोस्ट डेटा मैं उपयोगकर्ता को फ़ील्ड (शीर्षक, desc, शहर) में डेटा दर्ज करने के बाद निष्पादित करने वाले निम्न कोड का प्रयास कर रहा हूं और फिर क्लिक को सहेजता हूं।आईओएस

- (IBAction)saveDataAction:(id)sender { 
    NSString *lEventTitle = [NSString stringWithFormat:@"var=%@",eventTitle.text]; 
    NSString *lEventDesc = [NSString stringWithFormat:@"var=%@",eventDescription.text]; 
    NSString *lEventCity = [NSString stringWithFormat:@"var=%@",eventCity.text]; 

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://mydomain.com/ios/form.php"]]; 
    [request setHTTPMethod:@"POST"]; 
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"]; 
    //this is hard coded based on your suggested values, obviously you'd probably need to make this more dynamic based on your application's specific data to send 

    NSString *postString = [[NSString alloc] initWithFormat:@"title=%@&description=%@&city=%@", lEventTitle, lEventDesc, lEventCity]; 
    NSString *clearPost = [postString 
            stringByReplacingOccurrencesOfString:@"var=" withString:@""]; 
    NSLog(@"%@", clearPost); 
    [request setHTTPBody:[clearPost dataUsingEncoding:NSUTF8StringEncoding]]; 
    [request setValue:clearPost forHTTPHeaderField:@"Content-Length"]; 
    [NSURLConnection connectionWithRequest:request delegate:self]; 
    NSLog(@"%@", request); 
} 

जब मैं (चर युक्त स्ट्रिंग सर्वर के लिए भेजा जा करने के लिए) clearPost स्ट्रिंग NSLog, यह पता चलता है:

title=xmas&description=Celebration&city=NY 
पीएचपी अंत पर

, मेरे पास साधारण रूप में:

<?php 
$title = $_POST['title']; 
$description = $_POST['description']; 
$city = $_POST['city']; 

echo "Title: ". $title; 
echo "Description: ". $description; 
echo "City: ". $city; 
?> 

बस PHP पर डेटा प्राप्त करने का प्रयास कर रहा है ताकि बाद में मैं इसे कुशल बना सकूं। अभी जब मैं

domain.com/ios/form.php निष्पादित करता हूं, तो यह शीर्षक, विवरण और शहर खाली दिखाता है।

क्षमा करें, लेकिन मैं आईओएस और उद्देश्य-सी के लिए बहुत नया हूं।

+0

1. और सवाल क्या है? 2. आप प्रत्येक पोस्टेड वैरिएबल में 'name = 'भाग दो बार जोड़ रहे हैं: एक बार आपकी विधि की पहली तीन पंक्तियों में, फिर' पोस्टस्ट्रिंग 'बनाते समय। –

+0

क्षमा करें प्रश्न संपादित किए गए थे –

+0

आईओएस 9 ने एटीएस की शुरुआत की और बिना उन्हें श्वेतसूची के सामान्य HTTP अनुरोधों की अनुमति नहीं दी जाएगी। क्रेडिट: (http://stackoverflow.com/a/30732693/6042879) –

उत्तर

15

उद्देश्य सी

// Create your request string with parameter name as defined in PHP file 
NSString *myRequestString = [NSString stringWithFormat:@"title=%@&description=%@&city=%@",eventTitle.text,eventDescription.text,eventCity.text]; 

// Create Data from request 
NSData *myRequestData = [NSData dataWithBytes: [myRequestString UTF8String] length: [myRequestString length]]; 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: @"http://www.youardomain.com/phpfilename.php"]]; 
// set Request Type 
[request setHTTPMethod: @"POST"]; 
// Set content-type 
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"]; 
// Set Request Body 
[request setHTTPBody: myRequestData]; 
// Now send a request and get Response 
NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil]; 
// Log Response 
NSString *response = [[NSString alloc] initWithBytes:[returnData bytes] length:[returnData length] encoding:NSUTF8StringEncoding]; 
NSLog(@"%@",response); 

स्विफ्ट

// Create your request string with parameter name as defined in PHP file 
var myRequestString: String = "title=\(eventTitle.text!)&description=\(eventDescription.text!)&city=\(eventCity.text!)" 
// Create Data from request 
var myRequestData: NSData = NSData.dataWithBytes(myRequestString.UTF8String(), length: myRequestString.characters.count) 
var request: NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: "http://www.youardomain.com/phpfilename.php")!) 
// set Request Type 
request.HTTPMethod = "POST" 
// Set content-type 
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "content-type") 
// Set Request Body 
request.HTTPBody = myRequestData 
// Now send a request and get Response 
var returnData: NSData = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil) 
// Log Response 
var response: String = String(bytes: returnData.bytes(), length: returnData.characters.count, encoding: NSUTF8StringEncoding) 
NSLog("%@", response) 
+0

यदि आप अभी भी इसे सही नहीं समझ पा रहे हैं, तो बेझिझक पूछें..धन्यवाद। –

+0

यह वास्तव में छोटे tweaks के साथ काम किया! धन्यवाद एक बहुत दोस्त –

+0

मुझे अपने PHP सर्वर पर जांचने दें। मैं जल्द ही वापस आऊंगा –

0

इस प्रयास करें:

[request setValue:[NSString stringWithFormat:@"%d",[clearPost length]] forHTTPHeaderField:@"Content-Length"]; 

ठीक है, मैं मेरे अनुरोध कोड जोड़ने हूँ: यह सहायक हो सकता है

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] 
             initWithURL:[NSURL 
                URLWithString:@"http://www.sth.com/action/verify.php"]]; 

     [request setHTTPMethod:@"POST"]; 
     [request setValue:[NSString stringWithFormat:@"%i",[sent length]] forHTTPHeaderField:@"Content-length"]; 
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
     [request setHTTPBody:[sent dataUsingEncoding:NSASCIIStringEncoding]]; 
+0

मैंने संपादित किया और निम्न कोशिश की: डेटा दर्ज करने के बाद मैं सहेजें दबाएं। फिर मैं क्रोम पर जाता हूं और domain.com/ios/form.php पर जाता हूं। अभी भी कुछ भी नहीं दिखाता है। क्या मैं यह ठीक कर रहा हूँ? –

+0

क्या आप सामग्री-प्रकार लिख सकते हैं इसके बजाय सामग्री-प्रकार – meth

2

आईएसओ 9.0 के बाद से NSURLConnection को हटा दिया गया है। NSURLSesstion का उपयोग करें:

-(void) httpPostWithCustomDelegate 
{ 
NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration]; 
NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: nil delegateQueue: [NSOperationQueue mainQueue]]; 

NSURL * url = [NSURL URLWithString:@"http://hayageek.com/examples/jquery/ajax-post/ajax-post.php"]; 
NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:url]; 
NSString * params [email protected]"name=Ravi&loc=India&age=31&submit=true"; 
[urlRequest setHTTPMethod:@"POST"]; 
[urlRequest setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]]; 

NSURLSessionDataTask * dataTask =[defaultSession dataTaskWithRequest:urlRequest 
            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
             NSLog(@"Response:%@ %@\n", response, error); 
             if(error == nil) 
             { 
              NSString * text = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding]; 
              NSLog(@"Data = %@",text); 
             } 

            }]; 
[dataTask resume]; 

} 

reference