sbool
Messages postés115Date d'inscriptionmercredi 27 août 2003StatutMembreDernière intervention 7 mars 2008
-
4 sept. 2007 à 00:52
philippegueniche
Messages postés2Date d'inscriptionjeudi 6 mars 2008StatutMembreDernière intervention 6 mars 2008
-
6 mars 2008 à 16:44
Bonsoir;
Cela fait plusieurs mois que je me dépatouille tout seul sur un site, mais la je galere vraiment,
Je viens voir des grands programmeurs car c'est desepéré pour moi.
Mon problème:
Ayant un serveur local, j'ai dévellopé tout mon site dessus, puis lors de la migration pour l'hebergement, une faille de sécurité est apparue a cause du ping qui est trop elevé;
dans mon jeu en ajax, mon fichier "ok.php" (fait pour valider une bonne réponse par sessions) renvoit un lien permettant de retourner sur le jeu.
Hélàs pour moi, lorsque un joueur clique sur ce lien 5 fois de suite très rapidement, il renvoit 5 bonnes réponses.
Comment pourrais-je faire pour limiter ce temps sachant qu'avec les cookies + temps c'est pas gerable car le jeu va trop vite.
Le site fonctionne tres simplement
pour un lien : [# Mon compte]
dans head: <script type='text/JavaScript'>
var xhr = null;
function getXhr()
{
if(window.XMLHttpRequest)xhr = new XMLHttpRequest();
else if(window.ActiveXObject)
{
try{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else
{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
}
Si vous me donnez un idée plutot PHP, jsuis pas contre car le javascript et moi, c'est pas le top du tout lol...
Merci pour votre interret;
Très coordialement, sbool
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 4 sept. 2007 à 14:34
non, pas dans l'appel de la page, ça pourra être contourné...
plutôt une variable de session par question:
if(!isset( $_SESSION['question23_deja_repondu'])){
enregistrement de la réponse ou ce que tu veux;
$_SESSION['question23_deja_repondu'] = true;
}
else {
echo 'question 23 : déjà répondu !';
}
ou sinon tu marques dans ta base de donnée que la question a déjà été répondue (je sais c'est pas français, mais on se comprend :))
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 5 sept. 2007 à 14:07
Houlà, il te faut lire quelques tutoriels sur le javascript !
dans le head :
<script type='text/JavaScript'>
function DisableButton(id){
document.getElementById(id).disabled=true;
}
</script>
dans le body :
je te conseille de toujours mettre les attributs dans cet ordre, c'est plus facile de s'y retrouver (ou un autre ordre si tu préfères mais bon) :
id, type, name, value, style, fonctions js
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 4 sept. 2007 à 01:56
Salut,
la réponse est dans la question :
mon fichier "ok.php" (fait pour valider une bonne réponse par sessions)
-> quand tu reçois la réponse tu mets :
if(!isset( $_SESSION['deja_repondu'])){
enregistrement de la réponse ou ce que tu veux;
$_SESSION['deja_repondu'] = true;
}
else {
echo 'déjà répondu !';
}
sbool
Messages postés115Date d'inscriptionmercredi 27 août 2003StatutMembreDernière intervention 7 mars 2008 4 sept. 2007 à 14:28
Salut evangun, merci de ton support,
j'ai compris ce que tu veux que je fasse, cepandant, durant le jeu, la personne est redirigée vers cette page (ok.php) a chaque bonne reponse, puis à la page qui met au hazard une autre question ainsi de suite...
Donc si j'ajoute le script, si le joueur à deux bonnes reponses à la suite ca ne va plus marcher.
C'est plutot autour de ca mon probleme je crois:
xhr.open("GET","ajax.php?page="+page,true);
mais je ne suis vraiment pas assez expérimenté en javascript pour optimiser ce petit bout.
Merci pour d'eventuelles suggestions, critiques ou support.
@ très bientôt , Sbool.
Vous n’avez pas trouvé la réponse que vous recherchez ?
sbool
Messages postés115Date d'inscriptionmercredi 27 août 2003StatutMembreDernière intervention 7 mars 2008 4 sept. 2007 à 15:07
Oui, c'est parfait!
dans ok.php => $session'dejavu'++;
Dans moteur.php =>
$conneries = $session'dejavu';
if ($conneries < 1) { $session'scrore' = $score - $conneries; $session'dejavu'=0;}
elseif ($conneries < 5) { $session'scrore' = $score - $conneries; $session'dejavu'=0; echo'Merci de ne cliquer qu'une seule fois sur mes lien'; }
Avec un truc du genre je devrais m'en sortir.
Merci Evangun!!
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 4 sept. 2007 à 19:33
Hello,
je ne suis pas convaincu (sauf ton respect Evan hein :-) ) : les sessions et Ajax, ça fait rarement bon ménage.
Puisque ton site requiert javascript (cf ajax), je pense que tu devrais passer par une solution bcp plus simple (sauf si la solution proposée fonctionne hein, à voir, je n'ai pas bien compris le fonctionnement de ton jeu et ce qu'Ajax vient faire là-dedans) : dès qu'il clique (que ce soit un bouton ou un lien), vant de faire ton appel ajax, tu désactives le lien/bouton.
[bla.php bla]
=>
elem = document.getElementById('a1');
a1.href='';
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 4 sept. 2007 à 20:08
Hello Malalam :)
Mais avec cette solution tu laisses la faille qui permet d'avoir plus de points que prévu. Alors oui autant utiliser cette méthode aussi pour l'esthétique, mais comme complément.
Moi non plus je ne suis pas très au fait du fonctionnement de ce jeu, je donnais juste une solution générique à ce genre de problèmes. Après, Ajax + redirection, oui ça me paraît un peu louche aussi, mais bon :)
Ceci dit, Ajax + session, a priori pas de contre-indication !? A quoi penses-tu Malalam ?
sbool
Messages postés115Date d'inscriptionmercredi 27 août 2003StatutMembreDernière intervention 7 mars 2008 4 sept. 2007 à 23:53
Voilà quelques echanges constructifs du coup.
Pour ma part et pour repondre à malalam dans un premier temps, les sessions passent nickel depuis que je tripote ajax, les cookies aussi d'ailleurs, mais j'ai je ne m'en sert que pour controler le temps et frequence d'utilisation.
J'ai testé:
sbool
Messages postés115Date d'inscriptionmercredi 27 août 2003StatutMembreDernière intervention 7 mars 2008 5 sept. 2007 à 00:55
OK, j'ai enfin trouvé...
Très simple, (je donne la solution car je ne pense pas etre le seul à rencotrer ce probleme, cela peut egalement peut etre optimiser quelques sites, a confirmer...)
[# 1]
Les deux anti-slash car c'est dans un echo.
Aller @ tchao et encore merci!
Autonomie, rigueur, capacité d'adaptation, rapidité d'exécution, solides connaissances en programmation web : PHP5, POO, SQL, XML, AJAX /JAVASCRIPT - Notion en AS2/AS3/FLEX - Bases de données : ORACLE , MYSQL - Connaissances en administration linux seront bien appréciées.
Poste à temps complet, basé à Clichy (92)
Rémunération : en fonction du profil
Début : dès que possible
Si vous êtes intéressé, merci d'envoyer votre CV à job@axiome.fr