Skip to content

Instantly share code, notes, and snippets.

@lyxal
Created May 26, 2022 06:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lyxal/eea8406020176ff6a7a6cd327e9e7065 to your computer and use it in GitHub Desktop.
Save lyxal/eea8406020176ff6a7a6cd327e9e7065 to your computer and use it in GitHub Desktop.
//
// LoginViewController.swift
// Xperience
import UIKit
import Foundation
import WebKit
var user = User()
var testing = false //Ensure to change to false when not testing
let username = "D@88y80153CBE86121Cpm810oxmFHGfL4R1dpk^wGSPqnuP1aIxIL" //Header: username
let password = "t4aksmjdt74a9g" //Header: password
class LoginScreen: UIViewController, UITextFieldDelegate, WKNavigationDelegate {
@IBOutlet weak var username_box: UITextField!
@IBOutlet weak var password_box: UITextField!
@IBOutlet weak var submit_button: UIButton!
@IBOutlet weak var webView: WKWebView!
var results = ""
var request = URLRequest(url: URL(string: "http://xperience.app.unaux.com/scripts/service.php")!)
@IBAction func sumbit(_ sender: UIButton) {
let User = username_box.text
let Pass = password_box.text
submit_button.isEnabled = false
let dbname = "unaux_22219628_users" //Header: dbname
let query = "SELECT * FROM `users` WHERE `username` = '{1}' AND `password` = '{2}';"
let one = "\(User ?? "")"
let two = "\(Pass ?? "")"
let post_preparer = Postify()
let post = post_preparer.prepare(["username" : username,
"password" : password,
"dbname" : dbname,
"q" : query,
"1" : one,
"2" : two])
let post_data = post.data(using: String.Encoding.ascii , allowLossyConversion: true)!
self.request.httpMethod = "POST"
self.request.httpBody = post_data as Data
webView.load(request)
}
func webView(_ webView: WKWebView,
didFinish navigation: WKNavigation!) {
print("Loaded")
webView.evaluateJavaScript("document.getElementsByTagName('p')[0].innerHTML.toString()",
completionHandler: { (html: Any?, error: Error?) in
if html == nil {
print("Sorry, html was nil.");
webView.load(self.request);
} else {
self.results = html as! String;
//print("Results = \(String(describing: self.results))")
self.try_login();
}
})}
func try_login() {
if self.results != "\" \"" && self.results != "[]" {
let JsonParser = JSONParse()
user.name = JsonParser.parseJSON(self.results.data(using: String.Encoding.utf8)!)[0].value(forKey: "first_name") as! String
self.performSegue(withIdentifier: "Transition", sender: self)
}
else {
submit_button.isEnabled = true
}
}
override func viewDidLoad() {
self.submit_button.layer.cornerRadius = 10.0
super.viewDidLoad()
self.username_box.delegate = self;
self.password_box.delegate = self;
self.webView.navigationDelegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
self.view.endEditing(true)
return false
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment