2013-05-16 5 views
0

Я пробовал много раз, чтобы заставить ее работать, но она не работает независимо от того, что я пытаюсь. Я изучил много учебников, но не повезло найти что-нибудь полезное. Любые советы или помощь, пожалуйста? !! Что-то кажется неправильным с кодом?Система входа в систему iphone не работает

- (IBAction)login:(id)sender { 
    NSString *post =[NSString stringWithFormat:@"username=%@&pass=%@",usernameField.text, passwordField.text]; 

NSString *hostStr = @"http://new-host-3.home/login.php?"; 
hostStr = [hostStr stringByAppendingString:post]; 
NSData *dataURL = [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]]; 
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding]; 







if([serverOutput isEqualToString:@"Yes"]){ 
    UIAlertView *alertYes = [[UIAlertView alloc] initWithTitle:@"Succsess!" message:@"You are logged in!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
    [alertYes show]; 
} 

else { 
    UIAlertView *alertFail = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Username or Password Incorrect" 
                  delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
    [alertFail show]; 

} 

} 


<?php 
session_start(); 
$con = mysqli_connect("localhost","root","monkeys","lian"); 

$u = $_GET['username']; 
$pw = $_GET['pass']; 

$check = "SELECT username,pass FROM members WHERE username='$u' AND pass='$pw'"; 

$login = mysqli_query($con,$check) or die(mysqli_error($con)); 

$num_rows = mysqli_num_rows($login); 

echo "$num_rows \n"; 
echo "$u \n"; 
echo "$pw \n"; 

if (mysqli_num_rows($login) >= 1) { 
$row = mysqli_fetch_assoc($login); 
echo 'Yes'; 
exit; 
} 

else { 
echo ' No'; 
exit; 
} 

ответ

0

Попробуйте использовать NSMutableURLRequest и определенно запустить его асинхронно. Вы, как правило, ожидаете POST для входа. Если да, установите HTTP-глагол и поместите данные сообщения в тело запроса ....

NSString *hostStr = @"http://new-host-3.home/login.php?"; 
NSURL *url = [NSURL URLWithString:hostStr]; 

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
request.HTTPMethod = @"POST"; 

NSString *post =[NSString stringWithFormat:@"username=%@&pass=%@",usernameField.text, passwordField.text]; 
NSString *postEscaped = [post stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSData *postData = [postEscaped dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; 

[request setHTTPBody:postData]; 
[request setValue:@"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 

[NSURLConnection sendAsynchronousRequest:request 
            queue:[NSOperationQueue mainQueue] 
         completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 

          if (!error) { 
           NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
           NSLog(@"response %@", string); 
          } else { 
           NSLog(@"error %@", error); 
          } 
         }]; 
+0

Я пробовал, но независимо от того, что я ввел в поля имени пользователя и пароля, он не возвращает ошибку. Как заставить его войти в систему только тогда, когда я ввожу только правильное имя пользователя и пароль. – thewhtmba

+0

Обязанность этого кода заключается в том, чтобы сделать правильный http-сообщение службе. Ожидаемый глагол, ожидаемые параметры и поведение сервера при отправке, все зависит от веб-службы. Способ диагностики того, что происходит, - это выход журнала на этом клиенте и на сервере (если вы его контролируете). Не стесняйтесь вставлять строку ответов NSLog'а здесь. – danh

+0

«2013-05-18 22: 39: 09,603 ServerTest [2294: 11303] ответ 404 Не найдено

Не найдено

Запрашиваемый URL /login.php не был найден на этом сервере.


Apache/2.2.22 (Unix) ДАВ/2 PHP/5.3.15 с Suhosin-Patch сервера на новой-хост-3.home Порт 80
'Это выход NSLog – thewhtmba

Смежные вопросы