代码之家  ›  专栏  ›  技术社区  ›  Tonye Boro

通过api将ionic中json的所有数据传递给用户页面

  •  0
  • Tonye Boro  · 技术社区  · 8 年前

    我正在开发这个特别的离子型应用程序,它让我头痛不已。我还不熟悉爱奥尼亚,但我能够成功地创建登录页面和注册页面。

    我的主要问题是当用户的登录详细信息对用户的配置文件页有效时,返回通过API从数据库中获取的所有值。我希望用户的详细信息(用户名和电子邮件)在成功登录后从一个页面传递到另一个页面。

    下面是我的源代码。

    登录名.php

    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
    header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token');
    
        // Access-Control headers are received during OPTIONS requests
    
        if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
    
            if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
    
                header("Access-Control-Allow-Methods: GET, POST, OPTIONS");        
    
            if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
    
                header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
    
            exit(0);
    
        }
    
      require "config.php";
    
        $data = file_get_contents("php://input");
    
        if (isset($data)) {
    
            $request = json_decode($data);
    
            $username = $request->username;
    
            $password = $request->password;
    
                    }
    
          $username = mysqli_real_escape_string($con,$username);
    
          $password = mysqli_real_escape_string($con, $password);
    
           $username = stripslashes($username);
    
          $epassword = encryptIt($password);
    
        $sql = "SELECT * FROM user WHERE username = '$username' and password = '$epassword'";
    
          $result = mysqli_query($con,$sql);
    
          $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
    
          $active = $row['active'];
    
          $count = mysqli_num_rows($result);
    
    
    
          // If result matched myusername and mypassword, table row must be 1 row                    
    
          if($count >0) {
    
         $response= "Your Login success";
    
    
          }else {
    
        $response= "Your Login Email or Password is invalid";         
    
          }
    
     echo json_encode( $response);
    

    登录.ts

    import { Component, ViewChild  } from '@angular/core';
    import { IonicPage, NavController, NavParams, AlertController } from 'ionic-angular';
    import { RegisterPage } from '../register/register';
    import {Http, Headers, RequestOptions}  from "@angular/http";
    import { LoadingController } from 'ionic-angular';
    import 'rxjs/add/operator/map';
    
    /**
     * Generated class for the LoginPage page.
     *
     * See https://ionicframework.com/docs/components/#navigation for more info on
     * Ionic pages and navigation.
     */
    
    @IonicPage()
    @Component({
      selector: 'page-login',
      templateUrl: 'login.html',
    })
    
    
    export class LoginPage {
    
      @ViewChild("username") username;
    
      @ViewChild("password") password;
    
      data:string;
    
      constructor(public navCtrl: NavController, public alertCtrl: AlertController,
         private http: Http, public loading: LoadingController, public navParams: NavParams) {
    
      }
    
    
      ionViewDidLoad() {
        console.log('ionViewDidLoad LoginPage');
      }
    
      registerPage(){
        this.navCtrl.push(RegisterPage);
      }
    
    
      signIn(){
    
        //// check to confirm the username and password fields are filled
    
        if(this.username.value=="" ){
    
        let alert = this.alertCtrl.create({
    
        title:"ATTENTION",
    
        subTitle:"Username field is empty",
    
        buttons: ['OK']
    
        });
    
        alert.present();
    
        } else
    
        if(this.password.value==""){
    
        let alert = this.alertCtrl.create({
    
        title:"ATTENTION",
    
        subTitle:"Password field is empty",
    
        buttons: ['OK']
    
        });
    
        alert.present();
    
        }
    
        else
    
        {
    
        var headers = new Headers();
    
        headers.append("Accept", 'application/json');
    
        headers.append('Content-Type', 'application/json' );
    
        let options = new RequestOptions({ headers: headers });
    
        let data = {
    
        username: this.username.value,
    
        password: this.password.value
    
        };
    
        let loader = this.loading.create({
    
        content: 'Processing, please wait…',
    
        });
    
        loader.present().then(() => {
    
        //this.http.post('http://localhost:90/totallight/api/login.php',data,options)
    
        this.http.post('http://edomonitor.com/school-evaluation-api/login.php',data,options)
    
        .map(res => res.json())
    
        .subscribe(res => {
    
        console.log(res)
    
        loader.dismiss()
    
        if(res=="Your Login success"){
    
        //Store all json data and pass them to UserPage
    
        /*let alert = this.alertCtrl.create({
    
        title:"CONGRATS",
    
        subTitle:(res),
    
        buttons: ['OK']
    
        });
    
        alert.present();*/   
        }else
    
        {
    
        let alert = this.alertCtrl.create({
    
        title:"ERROR",
    
        subTitle:"Invalid username/password",
    
        buttons: ['OK']
    
        });
    
        alert.present();
    
        }
    
        });
    
        });
    
        }
    
        }
    
    }
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Er. Kathrecha Krushnkumar    8 年前

    this.authService.setToken(data.token, data.id, data.name, data.email); 
    

    setAccessToken(token: string, id: number, name: string, email: string) {
    
        this._accessToken = token;
        this.id = id;
        this.name = name;
        this.email = email;
    
        // Save to Storage for future reference 
    
        this._storage.set('loggedInUser', {
          token: token,
          id: id,
          name: name,
          email: email
        });
    
        // Log User 
        this._events.publish('user:login');
    }
    

    ngOnInit() {
        this._events.subscribe('user:login', (userEventData) => {
          this.rootPage = HomePage;
       }
    }
    

    export class HomePage {
    
      constructor(
        private _auth: AuthService,
      ) {}
    }
    

    <h2 class="user-name>{{ _auth.name }} </h2>