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:
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 :
$('#' + 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.
Partager