IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

L'impossible avec $_POST


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 36
    Par défaut L'impossible avec $_POST
    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();
    			}
    		});
    	}
    }

    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();
    ?>
    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 :

    Nom : debug chromre.png
Affichages : 157
Taille : 213,7 Ko

    /!\ 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.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $id= json_decode($_POST['id'], true);
    $password= json_decode($_POST['password'], true);
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 36
    Par défaut
    Tu comprends pas pourquoi j'ai mis ça ?

    Dans la logique, j'avais pas mis de json decode, mais dans le script fonctionnant, même avec une seule variable, j'avais ceçi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id= json_decode($_POST['user_id'], true);
    donc, j'ai voulu essayé. ^^

    J'aurais dû faire autrement ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    A quoi ressemble ton formulaire ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 36
    Par défaut
    Le formulaire se crée en ajax, voiçi ce qui est appelé lorsque la requête de verification de mot de passe a réussi :
    Code js : 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
    success: function(data) {
    	console.log(data);
    	if(data != false){ //si le mot de passe est bon
    		var arr = $.map(data, function(el) { return el; });
    		if(arr[0] == true){ //si le mot de passe est à changer
    			console.log(arr);
    			$('#login-form').remove();
    			$('.container').append(' <div id="mdpChange" class="form-signin" style="width:300px; margin : auto;"></div>');
    			$('#mdpChange').append('<h2 class="form-signin-heading">Password Change</h2>')
    			$('#mdpChange').append('<input type="hidden" id="id" value="'+arr[1]+'" />')
    			$('#mdpChange').append('<label for="pass1" class="sr-only">New password</label>')
    			$('#mdpChange').append('<input type="password" id="pass1" class="form-control" placeholder="New password" required="" autofocus="">')
    			$('#mdpChange').append('<label for="pass2" class="sr-only">Password Confirmation</label>')
    			$('#mdpChange').append('<input type="password" id="pass2" class="form-control" placeholder="Retype the password" required="">')
    			$('#mdpChange').append('<button  id="submit" onclick="changePassword()" class="btn btn-lg btn-primary btn-block" type="submit">Change it</button>')
    			$('#mdpChange').append('<div id="resultat"></div>')
    		}						
    	}else{ // si le mot de passe est à changer
    		$("#resultat").empty();
    		if (data == false){
    			$("#resultat").append("<p style='color: red;'>Erreur : Le mot de passe ou le pseudo est faux</p>");
    		}else{
    			window.location.reload();
    		}
    	}
    }
    });

    Ce qui peut donner :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div id="mdpChange" class="form-signin" style="width:300px; margin : auto;">
        <h2 class="form-signin-heading">Password Change</h2>
        <input type="hidden" id="id" value="2">
        <label for="pass1" class="sr-only">New password</label>
        <input type="password" id="pass1" class="form-control" placeholder="New password" required="" autofocus="">
        <label for="pass2" class="sr-only">Password Confirmation</label>
        <input type="password" id="pass2" class="form-control" placeholder="Retype the password" required="">
        <button id="submit" onclick="changePassword()" class="btn btn-lg btn-primary btn-block" type="submit">Change it</button>
        <div id="resultat"></div>
    </div>

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Une chose est sure c'est que "user_id" n'est pas généré spontanément, il est quelque part dans ton code.

    Concernant le Json, il n'y a en nul part dans ton code donc je ne vois pas ce qu'il vient faire là.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [EJB] Remote call impossible avec WEBSPHERE
    Par nighma dans le forum Websphere
    Réponses: 1
    Dernier message: 19/06/2006, 16h18
  2. isset() toujours vrai avec $_POST
    Par mrttlemonde dans le forum Langage
    Réponses: 6
    Dernier message: 16/03/2006, 10h33
  3. Réponses: 6
    Dernier message: 28/11/2005, 12h03
  4. [D2005]Compilation impossible avec version Personnal
    Par fab56 dans le forum Delphi .NET
    Réponses: 4
    Dernier message: 16/08/2005, 19h10
  5. [Requête] Difficile (impossible ?) avec des dates
    Par starch dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/04/2004, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo