Interpréter du Javascript avant de l'insérer dans une BDD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Interpréter du Javascript avant de l'insérer dans une BDD

Re: Interpréter du Javascript avant de l'insérer dans une BDD

par Ryle » 28 juin 2011, 20:37

En fait ce qu'il te faut dans ce cas, c'est dans ta page commencer par récupérer les valeurs qui t'intéressent dans des variables javascript. A partir de là, tu peux faire appel au serveur de plusieurs manière pour passer ces valeurs.

Tu peux le faire via une requête ajax (un appel au serveur fait en js et dans lequel tu peux passer des paramètres) ou en incluant une iframe ou une image, ou autre dans ta page en passant les paramètres dans l'url avec javascript. L'iframe ferait appel à un script php qui récupérerais les paramètres et les stockerais en base

Re: Interpréter du Javascript avant de l'insérer dans une BDD

par street51 » 28 juin 2011, 19:05

Merci pour ta réponse. Le problème c'est que j'arrive sur ma page par un lien classique, et que je n'ai pas envie de transmettre le hash par l'url. Y'a-t-il un moyen de transmettre la variable de manière cachée sans utiliser de formulaire ? Ou d'interpréter le code (de manière cachée également) et de le transmettre à une variable dans la même page ?

Re: Interpréter du Javascript avant de l'insérer dans une BDD

par Ryle » 27 juin 2011, 21:03

Le javascript s'exécute côté client (c'est le navigateur qui l’interprète), tandis que php s'exécute côté serveur et permet de générer la page qui est ensuite envoyée au navigateur.

Il faut donc le faire en deux temps : afficher une première page à ton utilisateur qui va exécuter le code javascript et transmettre le résultat à php (via un formulaire, une requête ajax, ...) pour faire l'insertion en base sur le serveur

Interpréter du Javascript avant de l'insérer dans une BDD

par street51 » 27 juin 2011, 15:43

Bonjour, pour un limiteur de votes j'utilise Javascript pour récupérer le navigateur et les plugins installés, les insérer dans une base de données puis les comparer lorsque l'utilisateur essaie de voter à nouveau.

Voici le code :

Code : Tout sélectionner

$navigateur = "<script language='Javascript'>document.write(navigator.appCodeName);</script>"; $plugins = "<script language='Javascript'>for(var i=0;i<navigator.plugins.length;i++) { document.write(navigator.plugins[i].filename); }</script>"; $serveur = "<script language='Javascript'>document.write(navigator.userAgent);</script>"; $hash = "$navigateur $serveur $plugins"; $hash = md5($hash); mysql_query("INSERT Into votants (id, hash) values ('', '$hash')") or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
Le problème, c'est que dans ma base j'obtiens "<script language='Javascript'>document.write(navigator.appCodeName);</script>, etc.".

COmment pourrais-je faire pour interpréter le code puis récupérer le résultat pour l'insérer dans la base ?

Merci :)