Page 1 sur 1
Sécurisé un petit jeu en php
Posté : 06 oct. 2008, 19:12
par angebleu17
Bonjour,
Je suis en train de faire un petit jeu en php qui conssiste à l'internaute de répondre a plusieurs questions.
Par exemple une question s'affiche, l'internaute répond et valide, une nouvelle question arrive...etc
Je me pose des questions sur la "sécurité" du jeu car si la personne fait précédent il retournera a la question précédente, comment faire pour éviter cela ? avec les sessions ?
De plus si on rafraichit la page, cela affiche une nouvelle question, comment faire pour que la question reste là même lorsque l'internaute rafraichit la page ?
Merci d'avance
Posté : 06 oct. 2008, 20:16
par dogmongo
utilise ajax

Posté : 06 oct. 2008, 20:34
par angebleu17
je ne connais pas ajax, c'est possible de le faire en php non ?
Posté : 06 oct. 2008, 20:49
par dogmongo
c'est du php
La page de base appelle une page avec traitement des prochaines questions, de ce fais aucun page ne reste dans l'historique et une simple session sur la page active ferait agrémente une variable session et pourrait servir de déclanchement fin de teste, une session pourrait aussi servir à indiquer à quelle question l'internaute se trouve

Posté : 06 oct. 2008, 20:53
par angebleu17
mais en fait les questions s'affiche de maniére aléatoire, donc impossible de connaitre la prochaine question.
Posté : 06 oct. 2008, 21:11
par djtec
Si tu utilise la fonction rand() pour afficher tes questions tu peux connaitre le chiffre de la question d'après.
Montre nous ton code ça sera plus simple pour t'aider.
Posté : 06 oct. 2008, 21:17
par dogmongo
je te montre un exemple
ta page de base
form_question.php
<html>
<head>
<title>question réponse</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<script type='text/JavaScript'>
function getXhr(){
var xhr = null;
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 le javascripts");
xhr = false;
}
return xhr
}
</script>
<script language="JavaScript" type="text/JavaScript">
function prochaine_question(question_num){
var xhr = getXhr()
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
leselect = xhr.responseText;
document.getElementById('ecran').innerHTML = leselect;
}
}
xhr.open("POST","affiche_question.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
var question_num;
xhr.send("question_num="+question_num);
}
</script>
<body>
<div id="ecran">
<form name="form" method="post" action="">
Quelle heure est il ?<br><br>
<img src="v" width="176" height="32" onclick="prochaine_question('0')" >
</form>
</div>
</body>
</html>
et voici la page qui va traiter les nouvelles questions
affiche_question.php
<?php
header('Content-Type: text/html; charset=ISO-8859-1');
echo "Vous avez répondu à la question $question_num";
$question_suivante = $question_num + 1;
$newquestion[1] = "quelle voiture avez vous ?";
$newquestion[2] = "tu connais phpfrance ?";
echo "<form name='form1' method='post'>
$newquestion[$question_suivante]<br><br>
<img src='' width='176' height='32' onclick='prochaine_question($question_suivante)' >
</form>";
?>
la page de base à une fonction ajax qui va envoyer le numéro de la question actuelle
la page de traitement des prochaines question va retourner les nouvelles questions sans aucun rafraichissement de page, puisque elle va refaire ton formulaire sans recharger ton navigateur
après il ne te reste plus cas arranger ca à ta sauce

Posté : 06 oct. 2008, 22:49
par Berzemus
c'est du php
Ouh ouh, la vilaine désinformation..
Non, ajax n'est pas du php. C'est du javacript, qui permet d'aller chercher, de façon asynchrone, l'un ou l'autre contenu sur un serveur. Stou. Après, ce qui tourne sur cet autre serveur, ajax s'en fout. Mais ça peut parfaitement être du php, ça oui, c'est sur.
Posté : 06 oct. 2008, 23:30
par dogmongo
je me suis mal expliqué mais tu as compris mon objectif
