Предупреждение о тайм-ауте отображается без ошибок журнала - PullRequest
1 голос
/ 26 марта 2020

Я пытался сделать страницу входа и регистрации. После нажатия на кнопку регистрации выдается сообщение об ошибке тайм-аута, но ошибок журнала нет. Хотя отображается предупреждение о превышении времени ожидания, данные, которые я использовал для регистрации, успешно сохраняются в MYSQL базе данных

TIMEOUT ERROR logs DATABASE

register.page.ts

import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { ToastController, LoadingController, AlertController } from '@ionic/angular';
import { AccessProviders } from '../providers/access-providers';

@Component({
  selector: 'app-register',
  templateUrl: './register.page.html',
  styleUrls: ['./register.page.scss'],
})
export class RegisterPage implements OnInit {

  u_name          : string = "";
  u_email_address : string = "";
  u_password      : string = "";
  u_confirm_password : string = "";

  disabledButton;

  constructor(
    private router : Router,
    private toastCtrl : ToastController,
    private loadingCtrl : LoadingController,
    private alertCtrl : AlertController,
    private accsPrvds: AccessProviders
  ) { }

  ngOnInit() {
  }

  ionViewDidEnter(){
    this.disabledButton = false;
  }

  async tryRegister(){
    if(this.u_name == ""){
      this.presentToast('Name is required');
    }else if(this.u_email_address == ""){
      this.presentToast('Email is required');
    }else if(this.u_password == ""){
      this.presentToast('Password is required');
    }else if(this.u_confirm_password != this.u_password){
      this.presentToast('Password are not the same');
    }else{
      this.disabledButton = true;
      const loader = await this.loadingCtrl.create({
        message: 'Please wait a moment...',
      });
      loader.present();

      return new Promise(resolve =>{
        let body = {
          aksi: 'proses_register',
          u_name: this.u_name,
          u_email_address: this.u_email_address,
          u_password: this.u_password
        }

        this.accsPrvds.postData(body, 'proses_api.php').subscribe((res:any)=>{
          if(res.success==true){
            loader.dismiss();
            this.disabledButton = false;
            this.presentToast(res.msg);
            this.router.navigate(['/login']);
          }else{
            loader.dismiss();
            this.disabledButton = false;
            this.presentToast(res.msg);
          }
        },(err)=>{
          loader.dismiss();
          this.disabledButton = false;
          this.presentAlert('Timeout');
        });
      });
    }
  }

  async presentToast(a){
    const toast = await this.toastCtrl.create({
      message : a,
      duration: 1500,
      position: 'top'
    });
    toast.present();
  }

  async presentAlert(a){
    const alert = await this.alertCtrl.create({
      header: a,
      backdropDismiss: false,
      buttons: [
      {
        text: 'Close',
        handler: (blah) => {
          console.log('Confirm Cancel: blah');
          //action
        }
      }, {
          text: 'Try Again',
          handler: () => {
            this.tryRegister();
          }
        }
      ]
    });
    await alert.present();
  }
}

login.page.ts

import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { ToastController, LoadingController, AlertController, NavController } from '@ionic/angular';
import { AccessProviders } from '../providers/access-providers';
import { Storage } from '@ionic/storage';

@Component({
  selector: 'app-login',
  templateUrl: './login.page.html',
  styleUrls: ['./login.page.scss'],
})
export class LoginPage implements OnInit {

  u_email_address : string = "";
  u_password      : string = "";

  disabledButton;

  constructor(
    private router : Router,
    private toastCtrl : ToastController,
    private loadingCtrl : LoadingController,
    private alertCtrl : AlertController,
    private accsPrvds: AccessProviders,
    private storage : Storage,
    public navCtrl : NavController
  ) { }

  ngOnInit() {
  }

  ionViewDidEnter(){
    this.disabledButton = false;
  }

  async tryLogin(){
    if(this.u_email_address == ""){
      this.presentToast('Email is required');
    }else if(this.u_password == ""){
      this.presentToast('Password is required');
    }else{
      this.disabledButton = true;
      const loader = await this.loadingCtrl.create({
        message: 'Please wait a moment...',
      });
      loader.present();

      return new Promise(resolve =>{
        let body = {
          aksi: 'proses_login',
          u_email_address: this.u_email_address,
          u_password: this.u_password
        }

        this.accsPrvds.postData(body, 'proses_api.php').subscribe((res:any)=>{
          if(res.success==true){
            loader.dismiss();
            this.disabledButton = false;
            this.presentToast('Login successful');
            this.storage.set('storage_xxx', res.result); // create storage session
            this.navCtrl.navigateRoot(['/home']);
          }else{
            loader.dismiss();
            this.disabledButton = false;
            this.presentToast('Email or password is incorrect');
          }
        },(err)=>{
          loader.dismiss();
          this.disabledButton = false;
          this.presentToast('Timeout');
        });
      });
    }
  }

  async presentToast(a){
    const toast = await this.toastCtrl.create({
      message : a,
      duration: 1500
    });
    toast.present();
  }

  openRegister(){
    this.router.navigate(['/register']);
  }

}

proses_api. php

<?php

    header('Access-Control-Allow-Origin: *');
    header("Access-Control-Allow-Credentials: true");
    header("Access-Control-Allow-Methods: PUT, GET, POST, DELETE,OPTIONS");
    header("Access-Control-Allow-Headers: Origin, Content-Type, Authorization, Accept, X-Requested-With, x-xsrf-token");
    header("Content-Type: application/json; charset=UTF-8");

    include "config.php";

    $postjson = json_decode(file_get_contents('php://input'), true);
    $today = date('Y-m-d H:i:s');

    if($postjson['aksi']=="proses_register"){

        $checkemail = mysqli_fetch_array(mysqli_query($mysqli,
        "SELECT u_email_address FROM user_info WHERE u_email_address='$postjson[u_email_address]'"));

        if ($checkemail['u_email_address']==$postjson['u_email_address']){
            $result = json_encode(array('success'=>false, 'msg'=>'Email address is already registered'));
        }else{
            $password = md5($postjson['password']);

            $insert = mysqli_query($mysqli, "INSERT INTO user_info SET
                u_name          = '$postjson[u_name]',
                u_email_address = '$postjson[u_email_address]',
                u_password      = '$password',
                u_createdon     = '$today'
            ");

            if($insert){
                $result = json_encode(array('success'=>true, 'msg'=>'Register successful'));
            }else{
                $result = json_encode(array('success'=>false, 'msg'=>'Register failed'));
            }
        }
        echo $result;

    }

    else if($postjson['aksi']=="proses_login")
    {
        $password = md5($postjson['password']);
        $logindata = mysqli_fetch_array(mysqli_query($mysqli,
        "SELECT * FROM user_info WHERE u_email_address='$postjson[u_email_address]' AND u_password='$u_password"));

        $data = array(
            'u_id'          => $logindata['u_id'],
            'u_name'          => $logindata['u_name'],
            'u_email_address' => $logindata['u_email_address'],
        );

        if($logindata){
            $result = json_encode(array('success'=>true, 'result'=>$data));
        }else{
            $result = json_encode(array('success'=>false));
        }

    echo $result;

    }
?>

Я не могу найти ошибки в этом коде, кто-нибудь знает, как решить эту проблему или найти что-то, что я пропустил. Спасибо

1 Ответ

0 голосов
/ 03 апреля 2020

Вы можете поместить следующую строку в register.page.ts, чтобы показать ошибку. console.log (ERR);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...