ionic-尝试使用phpmyadmin登录

时间:2018-08-02 08:15:23

标签: php typescript ionic-framework mysqli

我正在尝试使用Ionic登录我的应用程序。因此,即时通讯从离子发送数据到PHP。我不确定自己在做什么错。

HTML表单部分:

<ion-item id="roundedInput"> 
    <ion-label><ion-icon name="person" color="white"></ion-icon></ion-label>
    <ion-input placeholder="Gebruikersnaam" name="gebruikersnaam" #gebruikersnaam></ion-input>
</ion-item>

<ion-item id="roundedInput">
    <ion-label><ion-icon name="lock" color="white"></ion-icon></ion-label>
    <ion-input type="password" placeholder="Wachtwoord" name="wachtwoord" #wachtwoord> </ion-input>
</ion-item>

login.ts:

let data = {
    gebruikersnaam: this.gebruikersnaam.value,
    wachtwoord: this.wachtwoord.value
};

let loader = this.loading.create({
    content: 'Processing, please wait…',
});

loader.present().then(() => {
    this.http
        .post('https://rexmediahosting.nl/ionic/login.php', JSON.stringify(data))
        .map(response => response.json()).subscribe(response => {
            console.log(response)
            loader.dismiss()
            if (response =='success') {
                let alert = this.alertCtrl.create({
                    title: 'Succesvol ingelogt',
                    subTitle: (response),
                    buttons: ['OK']
                });
                alert.present();
            } else {
                let alert = this.alertCtrl.create({
                    title: 'error',
                    subTitle:(response),
                    buttons: ['OK']
                });
                alert.present()
            } 
        });
});

,最后一部分是login.php: 我有login.php文件“ Acccess-Control-Allow-Origin”,所以CORS并不是问题

// Create connection
$mysqli = new mysqli($localhost, $username, $password, $database);
// Check connection
if ($con->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

$data = file_get_contents('php://input');
if (isset($data)){
    $request = json_decode($data);
    $gebruikersnaam = $request->gebruikersnaam;
    $wachtwoord = $request->wachtwoord;
    $gebruikersnaam = mysqli_real_escape_string($mysqli, $gebruikersnaam);
    $wachtwoord = mysqli_real_escape_string($mysqli, $wachtwoord);
    $gebruikersnaam = stripslashes($gebruikersnaam);
    $wachtwoord = stripslashes($wachtwoord);

    // if ($wachtwoord != ""){
    //     echo json_encode($wachtwoord);
    // } else {
    //     echo json_encode('no wachtwoord');
    // }

    // Maak Query aan
    $query = "SELECT * FROM Gebruikers WHERE gebruikersnaam='$gebruikersnaam' AND wachtwoord='$wachtwoord'";

    // Voer Query uit
    $result = mysqli_query($con, $query);
    // Controlleer of de login correct was 
    if (mysqli_num_rows($result) != 0 ){
        // login correct 
        $response = "succes";
    } else {
        // login incorrect 
        $response = "fail";
    }
    // Encode $response naar JSON
    echo json_encode($response);
}

来自数据库结构的图像: 表格名称为“ Gebruikers” database structure

因此,基本上,我试图为我的“应用”创建登录屏幕。为此,我使用phpmyadmin作为数据库。因此,我尝试将数据从离子传递到服务器上的外部php文件,以获取响应。检查我的输入是否与数据库中的输入相同。当我输入正确的值(与数据库中的值相同)时,仍然会收到“失败”响应。所以它在某处出错了,但我不知道在哪里。我希望你们能帮助我!

2 个答案:

答案 0 :(得分:0)

问题出在您的查询中:

$query = "SELECT * FROM Gebruikers WHERE gebruikersnaam= $gebruikersnaam AND wachtwoord=$wachtwoord"; 从查询中删除单引号,因为单引号不会计算值

答案 1 :(得分:0)

将查询更改为:

$query = "SELECT * FROM Gebruikers WHERE gebruikersnaam = '" . $gebruikersnaam . "' AND wachtwoord = '" . $wachtwoord . "'";

参考:
http://php.net/manual/en/language.operators.string.php

相关问题