Passer une variable JS vers PHP

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par sff, 25 Septembre 2018.

  1. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    538
    J'aime reçus:
    0
    Bonjour, j'ai crée un petit code qui ne fonctionne malheuresement pas. J'ai tout essayé mais je ne saisis pas le problème.

    console.log(donneeClient); retourne parfaitement les données mais pas xhr.send(donneeClient).

    Dans index.php se trouve un INSERT INTO qui fonctionne quand ce script est exécuté mais $_POST['donnees'] reste desesperement vide.


    Code:
    var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
    var xhr = new XMLHttpRequest();
    
    var donneeClient = "donnees="+entry.subject ;
    
    xhr.open('POST', '/index.php');
    
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
            console.log('OK');
        }
    };
    
    xhr.send(donneeClient);
    
    console.log(donneeClient);
    Si quelqu'un a une solution je le remercie d'avance
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 193
    J'aime reçus:
    333
  3. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    538
    J'aime reçus:
    0
    Voila ce qui se trouve dans index.php :

    PHP:
    $pdo->query("INSERT INTO test (title, price, description) VALUES ('".$_POST['donnees']."', '10000', 'description')");
    lorsque le petit script JS que j'ai posté ci dessous est en action, index.php est bien appelé est le INSERT INTO fonctionne correctement SAUF que $_POST['donnees'] reste toujours vide !

    Pourtant il n'est pas NULL car dans le script JS
    console.log(donneeClient); retourne bien les données c'est ca qui est incompréhensible.
     
  4. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    538
    J'aime reçus:
    0
    Finalement j'ai réglé le problème. Une petite erreur de code JS. Voila la solution :

    Code:
    var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
    var xhr = new XMLHttpRequest();
    
    var donneeClient = "donnees="+entry.subject ;
    
    
    xhr.open('POST', '/index.php', true);
    
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    
    xhr.onreadystatechange = function() {//Call a function when the state changes.
        if(this.readyState == XMLHttpRequest.DONE && this.status == 200) {
            console.log('OK');
        }
    }
    
    xhr.send(donneeClient);
    
    console.log(donneeClient);
    Merci tout de meme
     
  5. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 193
    J'aime reçus:
    333
    Attention à la faille d'injection SQL, je vois que tu utilises PDO alors pourquoi faire l'impasse sur les requêtes préparées.
     
  6. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    538
    J'aime reçus:
    0
    En effet ! Par contre je me retrouve avec un autre problème que je n'arrive pas à résoudre.

    Voici le code en question :

    Code:
    search.run().then(function (data) {
     
        console.log(data.results);
        
        var XMLHttpRequest = require("../node_modules/leboncoin-api/node_modules/xmlhttprequest").XMLHttpRequest;
    var xhr = new XMLHttpRequest();
    
    var title = "title=test" ;
    var description = "description="+data.results ;
    
    xhr.open('POST', '/index.php', true);
    
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    
    xhr.onreadystatechange = function() {//Call a function when the state changes.
        if(this.readyState == XMLHttpRequest.DONE && this.status == 200) {
            console.log('OK');
        }
    }
    
    xhr.send(title+"&"+description);
    
        
    
        
    }
    la variable description devient [object Object],[object Object],[object Object],[object Object]..
    lorsque je l'envoi et l'enregistre dans dans mysql via ma requete. un console.log affiche pourtant les données correctement.

    As tu une solution pour envoyer correctement les données dans mysql ?
     
  7. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 193
    J'aime reçus:
    333
    Utilise console.log() pour voir si tu envoies bien ce que tu veux.
     
Chargement...
Similar Threads - Passer variable PHP Forum Date
Passer une variable en dossier URL Rewriting et .htaccess 19 Novembre 2018
Comment passer un WE merdique... Le café de WebRankInfo 31 Octobre 2021
Passer devant les mastodontes Demandes d'avis et de conseils sur vos sites 2 Juin 2021
Images Webp : peut-on se passer d'images alternatives ? YouTube, Google Images et Google Maps 1 Juin 2021
Meilleure passerelle pour vendre mon produit e-commerce 11 Avril 2021
Backlinks : tout refaire, désavouer ou passer en nofollow ? Netlinking, backlinks, liens et redirections 25 Janvier 2021
Problème passerelle sur Prestashop e-commerce 8 Septembre 2020
WordPress Passer d'une bonne position à une très bonne position Débuter en référencement 18 Juin 2020
Améliorer la vitesse sous Wordpress : passer toutes les pages en article Administration d'un site Web 3 Avril 2020
Passer d'un hébergement mutualisé à serveur dédié Administration d'un site Web 24 Mars 2020