-2

I have create a new project using which I have to store data on my server Database table. but whenever I am sending data it is storing null value in my table fields. I tried this so many times but it is not working.

Any help would be appreciated.

PHP Script code

$name = $jsonObj['name'];  
$email = $jsonObj['email'];  
$phone = $jsonObj['phone'];  
$comment = $jsonObj['comment']; 

my ViewController.h file

#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
NSMutableData*mutableData;
}
@property (strong, nonatomic) IBOutlet UITextField *txname;
@property (strong, nonatomic) IBOutlet UITextField *txemail;
@property (strong, nonatomic) IBOutlet UITextField *txcontect;
@property (strong, nonatomic) IBOutlet UITextField *txcomment;
- (IBAction)submit:(id)sender;

@end

my ViewController.m file

     - (IBAction)submit:(id)sender 
{
//Here YOUR URL
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"my URL…..."]];




 //create the Method "GET" or "POST"
[request setHTTPMethod:@"POST"];

//Pass The String to server(YOU SHOULD GIVE YOUR PARAMETERS INSTEAD OF MY PARAMETERS)
 NSString *userUpdate =[NSString stringWithFormat:@"name=%@&email=%@&phone=%@&  comment=%@&",_txname.text,_txemail.text,_txcontect.text,_txcomment.text,nil];

//Check The Value what we passed
NSLog(@"the data Details is =%@", userUpdate);

  //Convert the String to Data
NSData *data1 = [userUpdate dataUsingEncoding:NSUTF8StringEncoding];

  //Apply the data to the body
[request setHTTPBody:data1];

 //Create the response and Error
NSError *err;
NSURLResponse *response;

  NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];

NSString *resSrt = [[NSString alloc]initWithData:responseData encoding:NSASCIIStringEncoding];

 //This is for Response
NSLog(@"got response==%@", resSrt);
if(resSrt)
{
    NSLog(@"got response");
 else
{
    NSLog(@"faield to connect");
}
}
Ajay Gabani
  • 1,168
  • 22
  • 38
Ankur Kumawat
  • 91
  • 2
  • 12

2 Answers2

1

you aren't sending a json object. so in your php code try to get the values like this:

$name = $_POST['name'];
$email = $_POST['email'];  
$phone = $_POST['phone'];  
$comment = $_POST['comment']; 
André Slotta
  • 13,774
  • 2
  • 22
  • 34
1
NSDictionary* mainJSON = [NSDictionary dictionaryWithObjectsAndKeys:
                          _txname.text,@"name",
                          _txemail.text,@"email",
                          _txcontect.text,@"phone",
                          _txcomment.text,@"comment",
                          nil];

NSError * err;
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:mainJSON options:NSJSONWritingPrettyPrinted error:&err];
NSString * prams = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSString *urlString=@"Your URL here...";
prams = [prams stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"];

NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:url];
NSData *requestData = [prams dataUsingEncoding:NSUTF8StringEncoding];

if (prams.length>0) {
    [urlRequest setHTTPMethod:@"POST"];
    [urlRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    [urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [urlRequest setValue:[NSString stringWithFormat:@"%lu", (unsigned long)[requestData length]] forHTTPHeaderField:@"Content-Length"];
    [urlRequest setHTTPBody: requestData];
}

NSURLSessionDataTask * dataTask = [[NSURLSession sharedSession] dataTaskWithRequest:urlRequest completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
    //NSLog(@"data=%@",data);

    if (data.length>0 && error==nil) {
        NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
        NSLog(@"Dict=%@",dict);


    }
}];
[dataTask resume];
Atanu Mondal
  • 1,714
  • 1
  • 24
  • 30