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);
Partager