Я знаю, что есть довольно много потоков, похожих на это, но я просто не могу понять, что я делаю неправильно в моем коде, я могу получать записи в mysql через симулятор iphone, поэтому он работает, но я не могу исправить приоритеты предупреждений и} else if {'s ...
В основном это 4-строчная страница регистрации, отправляет 4 строки данных в мой файл .php, мой php-файл помещает информацию в мою базу данных. Пара проблем:
Если ни в одном из 4 полей ничего нет, и пользователь нажимает кнопку «Создать», он выдает соответствующее предупреждение «пропущенные поля», однако отправляет пустую запись в мою базу данных, поэтому, очевидно, это не слушая меня, когда я пытаюсь сказать это "НЕ ИДТИ ВПЕРЕДИ, ЕСЛИ КРИТЕРИИ № 1 НЕ УДАЛЕНЫ". Как я могу остановить выполнение этого IBAction, если в любом из четырех полей нет текста? (Мой php-файл проверяет только существующие имена пользователей и завершает работу, если находит совпадение в моей базе данных.)
Когда пользователь заполняет все 4 поля соответствующим образом и нажимает кнопку «Создать», я получаю ошибку «Не удается установить соединение с сервером», которую я установил. Поработав, возможно, в течение 3 часов с кодом, я никуда не попал, на самом деле, я помню время, когда мой профиль создавал оповещения об успехах, но это было в то время, когда моя база данных ТОЛЬКО записывала пустые записи.
Извините за стену текста, но я работал над этим около 10 часов подряд и не очень далеко !!!
Любая помощь будет высоко ценится <3 </p>
//-------------------------------------------------------------------------------------------------------------------------------
//create a user profile
-(IBAction)createprofile:(id)sender
{
NSString* name = textFieldName.text;
NSString* username = textFieldUser.text;
NSString* password = textFieldPassword.text;
NSString* email = textFieldEmail.text;
NSString *post =[[NSString alloc] initWithFormat:@"name=%@&username=%@&password=%@&email=%@",name,username,password,email];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *serverOutput = [[NSString alloc] initWithData:postData encoding: NSASCIIStringEncoding];
if(([textFieldName.text length]==0) || ([textFieldEmail.text length]==0) || ([textFieldPassword.text length]==0) || ([textFieldUser.text length]==0))
{
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Missing Field"
message:@"Please fill out all fields."
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles: nil];
[alert show];
[alert release];
} else if ([serverOutput isEqualToString:@"Yes"])
{
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Success" message:@"Your profile has been created!"
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
[alertsuccess release];
} else if ([serverOutput isEqualToString:@"No"])
{
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Error" message:@"The specified username is already taken."
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
[alertsuccess release];
} else {
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Connection to server cannot be established."
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
[alertsuccess release];
}
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSURL *url = [NSURL URLWithString:@"http://mywebsite.com/userlogin.php?"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
[theRequest setHTTPMethod:@"POST"];
[theRequest setValue:postLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPBody:postData];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if( theConnection )
{
webData = [[NSMutableData data] retain];
}
else
{
}
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
[webData setLength: 0];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[webData appendData:data];
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
[connection release];
[webData release];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSString *loginStatus = [[NSString alloc] initWithBytes: [webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding];
[loginStatus release];
[connection release];
[webData release];
}