2015-05-07 2 views
0

Вот код, который я выполняю, когда пользователь нажимает кнопку «Зарегистрироваться» на странице регистрации. Я просто хочу, чтобы скрипт отправил информацию на мою страницу Register.php, а затем поместил в базу данных адрес электронной почты и пароль.Почему мое приложение Swift не подключается к моей базе данных?

@IBAction func RegisterButtonTapped(sender: AnyObject) { 

    let userEmail = EmailTextField.text 
    let userPassword = PasswordTextField.text 
    let userRepeatPassword = RepeatPasswordTextField.text 

    // Check for empty fields 
    if(userEmail.isEmpty || userPassword.isEmpty || userRepeatPassword.isEmpty) { 

     // Display alert message 

     displayAlertMessage("All fields are required.") 

     return; 
    } 

    // Check if passwords match 
    if(userPassword != userRepeatPassword) { 
     // Display an alert message 
     userPassword == "" 
     displayAlertMessage("Passwords do not match.") 
     return; 
    } 

    // Send user data to server side 
    let myUrl = NSURL(string: "www.testsite.com/Register.php") 
    let request = NSMutableURLRequest(URL: myUrl!) 

    request.HTTPMethod = "POST"; 

    let postString = "email=\(userEmail)&password=\(userPassword)" 

    request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding) 

    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { 
     data, response, error in 

     if error != nil { 
      println("error\(error)") 
      return 
     } 

     var err: NSError? 
     var json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error:&err) as? NSDictionary 

     if let parseJSON = json { 
      var resultValue = parseJSON["status"] as? String 
      println("result: \(resultValue)") 

      var isUserRegistered:Bool = false 
      if (resultValue=="Success") { 
       isUserRegistered = true 
      } 

      var messageToDisplay = parseJSON["message"] as! String! 
      if (!isUserRegistered) { 
       messageToDisplay = parseJSON["message"] as! String! 
      } 

      dispatch_async(dispatch_get_main_queue(), { 

       //Display alert message with confirmation 
       var myAlert = UIAlertController(title: "Alert", message:messageToDisplay, preferredStyle: UIAlertControllerStyle.Alert) 

       let okAction = UIAlertAction(title: "Ok", style:UIAlertActionStyle.Default){ action in 
        self.dismissViewControllerAnimated(true, completion: nil) 
       } 

       myAlert.addAction(okAction) 
       self.presentViewController(myAlert, animated: true, completion: nil) 
      }); 
     } 
    } 
} 

register.php

<?php 
require(“Connect.php”); 
require(“SQLData.php”); 
$email = htmlentities($_POST[“email”]); 
$password = htmlentities($_POST[“password”]); 

$returnValue = array(); 

if(empty($email) || empty($password)) { 
    $returnValue[“status”] = “error”; 
    $returnValue[“message”] = “Missing required field”; 
    echo json_encode($returnValue); 
    return; 
} 

$dao = new SQLData(); 
$dao->openConnection(); 
$userDetails = $dao->getUserDetails($email); 

if(!empty($userDetails)) { 
    $returnValue[“status”] = “error”; 
    $returnValue[“message”] = “User already exists”; 
    echo json_encode($returnValue); 
    return; 
} 

$secure_password = md5($password); // I do this, so that user password cannot be read even by me 

$result = $dao->registerUser($email,$secure_password); 

if($result) { 
    $returnValue[“status”] = “Success”; 
    $returnValue[“message”] = “User is registered”; 
    echo json_encode($returnValue); 
    return; 
} 

$dao->closeConnection(); 

?>' 
+1

В чем Ваш вопрос? И тривиально: если вы действительно обеспокоены паролями своих пользователей. Вы делаете что-то действительно (ДЕЙСТВИТЕЛЬНО) неправильно. – milo526

+0

Вы видите, куда я иду не так? Он не заполняет базу данных, есть ли все равно, чтобы проверить, отправляется ли она на страницы php? – FreeTheStudents

+0

Итак, ваш вопрос: почему мое приложение Swift не подключается к моей базе данных? Измените свой вопрос, чтобы включить это. – milo526

ответ

0

Вполне вероятно, что вы ввели имя переменной в MySQL неправильно против файла PHP дб. Они чувствительны к регистру. Убедитесь, что имя столбца в mysql «user» table php script и пробелы. Надеюсь, что поможет

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