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 :

Génération de formulaire avec la méthode POST


Sujet :

jQuery

  1. #1
    Futur Membre du Club
    Homme Profil pro
    DevJunior
    Inscrit en
    Août 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : DevJunior
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2018
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Génération de formulaire avec la méthode POST
    Bonjour,

    J'ai un script js tout simple qui créée un formulaire avec la méthode POST pour envoyer des variables sur une autre page pour les utiliser en php.

    Voici le code:
    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
     
    $('#' + x).click(function () {
                console.log(this.id);
                var form = document.createElement('form');
                form.method = 'POST';
                form.action = 'fight.php';
                form.style.display = 'none'; // ON NE VEUT PAS VOIR LE FORMULAIRE
                var pokemon_id = document.createElement('input');
                pokemon_id.name = 'pokemon-id';
                pokemon_id.value = this.id; // ID DU POKEMON A EXP
                var zone_id = document.createElement('input');
                zone_id.name = 'zone-id';
                zone_id.value = zone_id; // ID DE LA ZONE
                if (typeof zone_id !== 'undefined') { // ID DE LA ZONE
                    $(form).append(pokemon_id + zone_id);
                    $('body').append(form);
                    form.submit();
                }
            });
    Pour vous expliquer rapidement, en gros l'utilisateur arrive sur une page où il peut choisir une zone en fonction de son niveau.
    Une fois qu'il clique sur la zone, une div qui contient la liste de ses pokemons apparaît (elle est de base en display-none car elle est généré en php).

    Ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#' + x).click(function () {
    représente le bouton avec l'id du pokemon de l'utilisateur (par rapport à tous les pokemons utilisateurs dans la base de donnée).

    Du coup, avec le POST de cette valeur je pourrais faire mon script PHP qui simule un combat avec l'id du pokemon, en fonction d'un pokemon aléatoire dans l'id de la zone (idems, pour chaque zone j'ai des pokemons tout prêt dans la base de donnée et j'en choisit un aléatoirement).

    Le problème, c'est que je suis bien redirigé avec ma page fight.php soit qu'un me renvoie un tableau vide. Je n'ai aucune variable POST alors que si c'était un formulaire en html ça devrait fonctionner et je ne comprend pas pourquoi là, ça ne fonctionne pas.


    Mis à part ça j'ai une question par rapport à la sécurité:
    L'id des pokemon est stocké dans l'id des boutons. Est-ce que si l'utilisateur modifie l'id en html, il pourra donc attaquer avec un pokemon qui ne lui appartient pas ? J'ai fais un test avec console.log et apparemment, quand je modifie le code html avec inspecter l'élément tous les click() ne fonctionne plus (bon à savoir) mais est-il possible de les faire fonctionner quand même (avec une extension ou autre?) car ça m'embêterait


    Merci de votre attention.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    le problème est à la ligne "$(form).append(pokemon_id + zone_id);".
    l'opérateur "+" transforme les variables en chaines de caractère et les concatène donc ce qui est ajouté est la chaine "[object HTMLInputElement][object HTMLInputElement]".

    par contre, vous n'avez peut-être pas besoin de construire tout un formulaire. essayez d'envoyer une requête AJAX comme cela :
    https://api.jquery.com/jQuery.ajax/

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/03/2009, 19h13
  2. Plusieurs formulaires dans un fichier avec plusieurs méthodes post
    Par cyberdevelopment dans le forum Langage
    Réponses: 2
    Dernier message: 17/08/2006, 15h04
  3. Réponses: 1
    Dernier message: 15/05/2006, 18h05
  4. PHP5: difficulté avec la méthode post
    Par koueletbak dans le forum Langage
    Réponses: 10
    Dernier message: 14/04/2006, 11h07
  5. Formulaire utilisant la méthode POST + popup
    Par Hell dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 27/10/2004, 13h34

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