Bonjour,
J'ai vraiment besoin d'aide à propos de ce code ajax, puis PHP :
Code javascript : 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 function changePassword(){ if($('#pass1').val() != $('#pass2').val()){ $("#resultat").empty(); $("#resultat").append("<p style='color: red;'>Erreur : Le mot de passe ou le pseudo est faux</p>"); }else{ $.ajax({ type: 'POST', url: '/authentif/passwordChange.php', data: {"id" : $('#id').val() "password" : $('#pass1').val() }, dataType:'JSON', complete: function(a,b){ window.location.reload(); } }); } }
Normalement, le code PHP doit crypter le mot de passe et l'enregistrer en base de donnée, puis interdire une prochaines modifications. LE problème, c'est que quand je lance l'appel ajax, j'ai aucune réponse d'après le débugger Chrome, mais j'ai pourtant des paramètre $_POST qui s'envoit :
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 <?php try{ $bdd = new PDO('mysql:host=172.16.1.39;dbname=nagiosplus;charset=utf8', 'nagiosplus', '#######"'); } catch (Exception $e){ die('Erreur : ' . $e->getMessage()); } print_r($_POST); $id= json_decode($_POST['id'], true); $password= json_decode($_POST['password'], true); // $id= json_decode($_POST['user_id'], true); echo $id; $salt = openssl_random_pseudo_bytes(22); $salt = '$2a$%13$' . strtr(base64_encode($salt), array('_' => '.', '~' => '/')); $password_hash = crypt($password, $salt); // Cryptage du mot de passe à enregistrer $lenght_hash = crypt(strlen($password), $salt); // Cryptage du mot de passe à enregistrer echo $password."<br />"; echo $password_hash."<br />"; echo strlen($password)."<br />"; echo $lenght_hash."<br />"; // $req = $bdd->prepare('Update User set passHashed = ?, passLenght = ?, authChang = 0 where id = ?'); // $req->bindParam(1, $password_hash); // $req->bindParam(2, $lenght_hash); // $req->bindParam(3, $id); // $req->execute(); ?>
/!\ Sur le screen, considérer qu'il n'y a ps deproblème avec les $_POST, au niveau de la variable affichée user_id au lieu de id /!\
Et le plus louche, c'est que le même script PHP fonctionne, il prend en compte les post comme il faut, mais pour une autre action.
Quel est le problème ?
Merci d'avance.
Partager