से POST का उपयोग करके PHP को सरणी पास करना, इसलिए मैंने समस्याओं की एक अनगिनत संख्या देखी है, लेकिन उनमें से कोई भी उत्तर नहीं दिया कि मैं क्या देख रहा था या पूरी तरह से इसका उत्तर दिया ताकि उम्मीद है कि आप सभी मेरी मदद कर सकते हैं।आईओएस
मुझे POOS का उपयोग करके आईओएस से रेस्तरां फ़ाइल की एक सरणी पास करने की ज़रूरत है या फिर भी यह अच्छी तरह से काम करेगा। मैं ASIHTTPRequest के बारे में जानता हूं लेकिन मैं कुछ निर्मित करने की तलाश में हूं और इसे डेवलपर द्वारा छोड़ा गया है। और आखिरकार, मैं उन्हें यूआरएल के माध्यम से पास नहीं करना चाहता क्योंकि मुझे नहीं पता कि कितनी प्रविष्टियां होंगी।
तो यहां तक कि मुझे अब तक क्या मिला है।
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:theURL]];
[request setHTTPMethod:@"POST"];
NSMutableDictionary *jsonDict = [[NSMutableDictionary alloc] init];
[jsonDict setValue:restaurants forKey:@"restIDs"];
NSLog(@"JSON Dict: %@",jsonDict);//Checking my array here
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:kNilOptions error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"JSON String: %@",jsonString); //Checking my jsonString here...
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"json" forHTTPHeaderField:@"Data-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [jsonData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody: jsonData];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSLog(@"Return DATA contains: %@", [NSJSONSerialization JSONObjectWithData:returnData options:NSJSONReadingMutableContainers error:nil]);
NSArray *restMenuCount = [NSJSONSerialization JSONObjectWithData:returnData options:NSJSONReadingMutableContainers error:nil];
तो, यह अंत से, मैं सब कुछ देख लिया है और यह सब अच्छा लग रहा है, लेकिन पीएचपी अंत से यह और भी यह लेने नहीं करता है।
यहाँ मेरी PHP फ़ाइल की तरह दिखता है:
$restIDs = $_POST['restIDs'];
echo $restIDs; //Checking to see if it even has anything......but nothing there
for ($i = 0; $i < $restIDs.count; $i++) {
$query = "SELECT * FROM `MenuItems` WHERE rest_id = '$restID'";
$result = mysqli_query($connect, $query);
$number = mysqli_num_rows($result);
$menuNumber[$i] = $number;
}
echo json_encode($menuNumber);
तो अंत में, क्या मैं गलत कर रहा हूँ? मुझे अपने PHP अंत में कुछ भी क्यों नहीं मिल रहा है। और सबसे अधिक, क्या कोई मुझे बता सकता है कि पोस्ट के माध्यम से सरणी कैसे भेजना है। क्योंकि मुझे लगता है कि यह मेरी असली समस्या है, मैं खुद को समस्या को ठीक करने के लिए पर्याप्त समझ में नहीं आता। मुझे समझ में नहीं आता कि आप आईओएस पक्ष से सबकुछ कैसे डाल सकते हैं और इसे PHP पक्ष पर उठा सकते हैं।
मुझे उम्मीद है कि यह सब पर्याप्त स्पष्ट था, अग्रिम धन्यवाद।
संपादित करें:
मैं यूआरएल के माध्यम से एक स्ट्रिंग के रूप सरणी गुजर करने की कोशिश की तो यह विस्फोट, सौभाग्य से यह काम किया है ... लेकिन मैं सिर्फ यूआरएल सीमा के अंतर्गत हूँ, इसलिए मैं अभी भी यह पता लगाने के लिए करना चाहते एक और समाधान। कम से कम, अब मुझे पता है कि मेरा बाकी कोड अपेक्षित काम कर रहा था।
आप एक php ढांचे का उपयोग कर रहे हैं? – ekims
आपके कोड में एक [एसक्यूएल इंजेक्शन भेद्यता] है (http://en.wikipedia.org/wiki/SQL_injection)। आप mysqli का उपयोग कर रहे हैं, आप तैयार कथन का उपयोग क्यों नहीं कर रहे हैं? – Charles
हाय चार्ल्स, हाँ मेरे कोड में एसक्यूएल इंजेक्शन भेद्यताएं हैं, लेकिन तैयार बयानों से आपका क्या मतलब है? – WiseOlMan