Bonjour à tous

Lorsque je tente de récupérer la variable PHP nommée $userRole le résultat de la requête Ajax montre : " "banker"Connexion en cours" , autrement dit la "response' concatène la variable en question avec le message contenu dans le 'Die' de mon code, pourquoi ?

Si je tente de récupérer uniquement la variable en faisant un json.PARSE de la 'response' (en écrivant response['userRole']) cela m'indique soit 'undefined' soit 'JSON.parse: unexpected character at line 1 column 1 of the JSON data' ...

La variable est pourtant retournée dans la réponse à la requête Ajax et est entourée de doubles quotes !

Merci d'avance pour vos éclaircissements

loginFormFn.php:

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/functions-php/connexion.php';
//$userAlert = "";
//$userRole = "";
 
if (isset($_POST['displayName']) && isset($_POST['userPassword'])) {
 
    $displayName = $_POST['displayName'];
    $userPassword = $_POST['userPassword'];
 
    //Recherche les utilisateurs et banquiers ayant nom et mot de passe 
    //qui correspondent avec les données présentes dans la base de données
    try {
        $sql = $conn->query("SELECT userName, userPassword, userRole
                        FROM users 
                        WHERE userName='" . $displayName . "' 
                        AND userPassword='" . $userPassword . "'
                        UNION
                        SELECT bankerName, bankerPassword, userRole
                        FROM bankers
                        WHERE bankerName='" . $displayName . "'
                        AND bankerPassword='" . $userPassword . "'
                        ");
    } catch (PDOException $e) {
        echo "La requête n'a retourné aucune donnée...";
    }
 
    //Si la requête est fructueuse on ouvre une session et on précise le rôle de l'utilisateur
    //(banquier ou simple utilisateur : information remontée par la requête ($userRole))
    $row = $sql->fetchObject();
    $userRole = $row->userRole;
 
    echo json_encode($userRole);
 
    if ($sql->rowCount() > 0) {
 
        session_start();
        $_SESSION['loggedIn'] = true;
        $_SESSION['displayName'] = $displayName;
        $_SESSION['userRole'] = $userRole;
 
        die("Connexion en cours...");
 
        //Si utilisateur non reconnu on le signale dans le formulaire de login
        //et l'on redirige vers la page de garde
    } else {
 
        die("Utilisateur ou mot de passe non reconnu, veuillez vérifier vos coordonnées");
    }
};

loginForm.js :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
var myLoginForm = document.getElementById('loginForm');
 
$(document).ready(function () {
    $("#submit").on('click', function (event) {
        event.preventDefault();
 
        var displayName = $("#displayName").val();
        var userPassword = $("#userPassword").val();
 
        if (displayName == "" || displayName.length < 5) {
 
            alert("Veuillez renseigner un nom d'utilisateur (min 5 caractères)")
            return false
        }
        if (userPassword == "") {
            alert('Veuillez renseigner un mot de passe')
            return false
        }
 
        $.ajax(
            {
                url: '/includes/loginForm.php',
                method: 'POST',
                data: {
                    loggedIn: true,
                    dataType: 'json',
                    displayName: displayName,
                    userPassword: userPassword
                },
                success: function (response) {
                    var userRolePHP = JSON.parse(response)
 
                    console.log('Variable venant de php = ' + userRolePHP)
                    $("#response").html(response)
                    /*setTimeout(() => {
                    //On ouvre soit la console d'administration pour un banquier
                    //soit la page des comptes de l'utilisateur
                    //if (userRole == "banker") {
 
                    //$(location).attr('href', '/views/adminConsole.php')
                    // } else {
                    //$(location).attr('href', '/views/clientAccounts.php')
                    //}
                }, 1500)*/
 
                },
            });
 
        //var userRolePHP = "this.response['userRole']"//Cette variable vient de la page loginFormFn.php
        /* $.ajax(
             {
                 url: '/includes/loginForm.php',
                 method: 'GET',
                 dataType: 'json',
                 success: function (response) {
                     alert('Variable venant de php = ' + response['userRole'])
                 }
             });*/
    });
});
/*var displayName = document.getElementById('displayName')
 
 
myLoginForm.addEventListener('submit', function (event) {
    if (myLoginForm.checkValidity() === false) {
        console.log('Une erreur est survenue')
        event.preventDefault()
        event.stopPropagation()
 
    } else {
        myLoginForm.classList.add('was-validated')
        alert("Données envoyées")
    }
})
 
// Empêche la fermeture du formulaire inclus dans le dropdown
document.getElementById("dropDownLoginForm").addEventListener('click', function (event) {
    event.stopPropagation();
});*/
 
//alert(userRolePHP);