如何使用 swiftui 和 php 在 Xcode 中的个人资料页面上回显用户详细信息

问题描述

我对 PHP 很陌生,不知道如何继续,所以我真的希望有人能帮助我下一步做什么。我有一个成功的用户注册登录系统,它连接到我的 swiftui 应用程序的不同视图和文本字段。例如,当用户注册页面上输入详细信息时,这些详细信息将存储在我在 PHPMyAdmin 上使用 MysqL 创建的数据库中。登录页面也是如此,当用户登录时,它会检查数据库并让其进入个人资料页面。但是,现在,我不知道如何回显已登录到我的 Xcode 应用程序的用户名。我知道我需要包含一个 profile.PHP 文件,但我不知道如何开始。我使用的外键是“username”字段,它存在于我的数据库的两个表中:“users”和“profile”,这是我想要回显并显示在我的 Xcode 应用程序上的值。

这些是我的 PHP 文件

  1. connect.PHP

        resultArray.forEach((result)=>{
            console.log(result);
            let data: StockObject = result['data'];  //  <--Error is hereeee
    
                console.log("Date: " + data.date +
                    " Close: " + data.close +
                    " High: " + data.high +
                    " Low: " + data.low +
                    " Open: " + data.open +
                    " Volume: " + data.volume 
                ); 
        });
    }
    catch(error){
        console.log("Error: " + JSON.stringify(error));
    }
    
  2. 数据库连接.PHP

     <?PHP
    
     // details to access the database
    
     define('dbuser','root');
     define('dbpass','reallyStrongPwd123');
     define('dbhost','localhost');
     define('dbname','registration');
     ?>
    

    }

  3. dboperations.PHP

     <?PHP
    
    class databaseconnect
    {
     private $conn;
    
     // __contruct = will automatically call this function when you create an object from a class
    
     function __construct()
     {
     }
    
     // establish the database connection
    
     function connect()
     {
         // embed the PHP code from the connect.PHP file
    
         require_once 'connect.PHP';
    
         // $this calls the object
         // connect to the database
    
         $this->conn = new MysqLi(dbhost,dbuser,dbpass,dbname);
    
         // check for connection error
    
         if (MysqLi_connect_errno()) {
             echo "Connection Failed " . MysqLi_connect_error();
         }
    
         return $this->conn;
     }
    
  4. signup.PHP

      <?PHP
    
      class dboperation
       {
       private $conn;
    
      // __contruct = will automatically call this function when you create an object from a class
    
     function __construct()
     {
         // need to access other PHP files
         require_once 'connect.PHP';
         require_once 'databaseconn.PHP' ;
    
         // open a new db connection
         $db = new databaseconnect();
         $this->conn = $db->connect();
     }
    
    
     // user login
    
     public function userlogin($username,$password)
         {
             $securepass = md5($password);
    
             $stmt = $this->conn->prepare("SELECT userid FROM users WHERE username = ? AND password = ?");
             $stmt->bind_param("ss",$username,$securepass);
             $stmt->execute();
             $stmt->store_result();
             return $stmt->num_rows > 0;
         }
    
     // display details in an array
    
     public function displayuser($username)
         {
             $stmt = $this->conn->prepare("SELECT username,useremail FROM users WHERE username = ?");
             $stmt->bind_param("s",$username);
             $stmt->execute();
             $stmt->bind_result($username,$useremail);
             $stmt->fetch();
             $user = array();
             $user['username'] = $username;
             $user['useremail'] = $useremail;
             return $user;
         }
    
     // create a new user function
    
     public function newuser($userid,$password,$useremail)
     {
         echo $username;
         echo $useremail;
         echo $userid;
    
         $securepass = md5($password);
    
         $stmt = $this->conn->prepare("INSERT INTO users(userid,username,password,useremail) values (?,?,?)");
    
                 // binding parameters,data types
    
                 $stmt->bind_param("isss",$userid,$securepass,$useremail);
                 $result = $stmt->execute();
             if($result === false){
                 echo $stmt->error;
             }
                 $stmt->close();
                 if ($result) {
                     return true;
                 } else {
    
                     return false;
                 }
    
     }
    
    
     }
    
  5. 登录.PHP

     <?PHP
    
     //include the db operation file
     require_once 'dboperations.PHP' ;
    
     // create a response array
     $response = array();
     //   print_r($_SERVER);
     if($_SERVER['REQUEST_METHOD'] == 'GET'){
    
         //something was posted,collect the data from the post variable
    
         $username = $_GET['username'];
         $password = $_GET['password'];
         $useremail = $_GET['useremail'];
         $userid = rand(000001,999999);
    
         // new object
     $db = new dboperation();
    
         //insert the values
         if($db->newuser($userid,$useremail)){
             $response['error']=false;
             $response['message']='account created';
         }else{
    
             $response['error']=true;
             $response['message']='account was not created';
         }
    
     }else{
         $response['error']=true;
         $response['message']='other';
     }
     echo json_encode($response);
     ini_set('display_errors',1);
     ini_set('display_startup_errors',1);
     echo error_reporting(E_ALL);
    

这是我的个人资料页面快速代码

<?PHP


//include the db operation file
require_once 'dboperations.PHP' ;

// create a response array
$response = array();

if ($_SERVER['REQUEST_METHOD'] == 'GET') {

 if (isset($_GET['username']) && isset($_GET['password'])) {

     $db = new dboperation();

     if ($db->userlogin($_GET['username'],$_GET['password'])) {
         $response['error'] = false;
         $response['message'] = 'successful login';
         $response['user'] = $db->displayuser($_GET['username']);
     } else {
         $response['error'] = true;
         $response['message'] = 'invalid username or password';
     }

 } else {
     $response['error'] = true;
     $response['message'] = 'parameters are missing';
  }

 } else {
  $response['error'] = true;
  $response['message'] = "Request not allowed";
}

echo json_encode($response);

} }

非常感谢您的帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)