Problème de rafraichissement dune page !!!! [^^sad1] [Résolu]

Messages postés
60
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
10 mai 2012
- - Dernière réponse : FXPHANTOM
Messages postés
60
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
10 mai 2012
- 15 mars 2010 à 23:19
Bonjour à tous ,
Je m'explique ... j'ai 2 soucis dont je n'arrive pas à résoudre !

1. A chaque saisie d'un nombre, la modification à partir de la base de donnée s'effectue mais n'est pas mis à jours sur ma page Vcompte.php (ref: ).

2. J'aimerai codé le numéro a découvrir mais je ne trouve pas de solutions a ce problème. j'ai essayé en indiquant value:'. (addslashes(md5($rand))) .' c'est codé mais ça ne fonctionne pas .

Je vous mets le code de la page membre avec le jeu ... et j'ai pris le soin de mettre quelques annotations ... Merci d'avance !



















Accueil




// AFFICHAGE LOGIN ET CREDIT : C'EST ICI QUE LA DONNEE CREDIT NE S'ACTUALISE PAS LORS DE L'ENVOI D'UN NOMBRE
Votre login :


Crédits réstant :


[deconnexion.php Déconnexion ]






Le jeu commence dans :




Entrer votre numéro :



// LE JEU COMMENCE ICI












Afficher la suite 

11 réponses

Meilleure réponse
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
3
Merci
Arf, je bloque moi aussi , j'ai du mal à te suivre.

Je pense que tu te prends la tête pour pas grand chose.
Il faut toujours s'inscrire dans une logique de simplification et donc de compréhension du code.
Là tu as pas mal de lignes en doublon, des affectations de variables qui ne servent à rien, des requêtes inutiles et inutilisées, des noms de variables qui ne représentent pas la même chose selon le contexte, ...

Côté sécurité c'est un véritable gouffre : file l'adresse du jeu, je gagne à tous les coups et je crédite mon compte sans passer par l'achat de crédit
Il doit également être possible de nuire gravement à ta DB.
Il faut toujours limiter et contrôler au maximum les données externes (celles provenant d'un formulaire, d'une url, ...)

J'ai regardé d'un peu plus près ton code et réécris quelques trucs rapidement (ça ne m'étonnerais pas qu'il y ait des bugs)
C'est loin d'être parfait, mais ça me semble un peu plus logique que le code original (tout du moins si j'ai correctement compris ton problème)



















Accueil




// AFFICHAGE LOGIN ET CREDIT : C'EST ICI QUE LA DONNEE CREDIT NE S'ACTUALISE PAS LORS DE L'ENVOI D'UN NOMBRE

Votre login :




Crédits réstant :


[deconnexion.php Déconnexion ]






Le jeu commence dans :




Entrer votre numéro :



// LE JEU COMMENCE ICI

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 122 internautes nous ont dit merci ce mois-ci

Commenter la réponse de kohntark
Messages postés
60
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
10 mai 2012
3
Merci
Salut Kohntark ,

J'ai une assez bonne nouvelle , j'ai su adapter ton code dit "fait à la va vite" ,
donc j'ai ajouté $result[0,1] à $numobjetwin donc tout fonctionne correctement !

Merci une fois de plus pour ce fameux coup de main ,
je ne te dis pas à bientôt , cela voudrait dire que j'aurai un autre problème !

Cordialement,
FXPhantom

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 122 internautes nous ont dit merci ce mois-ci

Commenter la réponse de FXPHANTOM
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Salut,

J'ai lu sans doute trop vite mais j'ai une question (con) :
Où est définie $_SESSION['credit'] ??

Cordialement,

Kohntark -
Commenter la réponse de kohntark
Messages postés
60
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
10 mai 2012
0
Merci
Bonjour Kohntark ,
Je suis assez content que tu ais pris la peine de regarder mon code , je suis assez de prêt tes publications sur phpcs ...

$_SESSION['credit'] apparait dans ma page d'inscription membre ... cette donnée s'affiche correctement avec pour seule condition qu'elle n'évolue pas au travers des changements de ma base de donnée .

Ex: il note $_SESSION['credit'] à 132 crédits alors que dans ma base de donnée le décompte se fait correctement ... quand je change de page , le compteur revient à 132 . Il n'y a qu'en se déconnectant et en me reconnectant sur le compte membre que je m'aperçois que $_SESSION['credit'] = à "credit" de la base de donnée .

donc je ne vois pas trop ou ca cloche !!!

S'il te faut plus de précisions n'hésites pas !

Cordialement , FXPhantom
Commenter la réponse de FXPHANTOM
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Re,

Je crains ne pas tout comprendre.
Arrête moi si je me trompe :
Tu as un jeu où chaque joueur à un crédit qu'il peut créditer dans sa page inscription et que tu renseignes à la connexion de ce dernier dans $_SESSION['credit']
Lorsque le joueur joue, son crédit décroit de 1.

En fait je me limite à ça et cherche donc dans ton code un truc du genre $_SESSION['credit'] = $_SESSION['credit'] - 1;

Hors il n'y a aucune modification de cette variable de session, contrairement à la DB où tu fais :
$sql = mysql_query("UPDATE utilisateurs SET credit=$pointfin ...

Il est donc normal que $_SESSION['credit'] n'évolue pas et qu'elle "recolle" avec la DB lorsque le membre se reconnecte.

J'ai sans doute loupé quelque chose mais s'il faut que le crédit du membre décroisse en fonction de son nombre de tentative il faut un truc du genre :
// Calcul des points
$pointfin = $cnt-1;
$_SESSION['credit'] = $pointfin;
// Operation
//...


Commence peut être par là, mais il y aura encore pas mal de choses à modifier afin de rendre ton code plus clair (mysql_select_db() superflues, document.location.replace, die, doublons var session / requêtes, etc ...)

Cordialement,

Kohntark -
Commenter la réponse de kohntark
Messages postés
60
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
10 mai 2012
0
Merci
Non en fait j'aurai du te préciser ... c'est de ma faute ... Lors de la validation de chaque inscription , on incrémente automatiquement quelques crédits aux membres d'où $_SESSION['credit'] dans la page d'inscription .

Pour revenir au code de mon jeu , j'ai nommé "$cnt = $_SESSION['credit'];" dans la partie (debut du code du jeu):
if (!isset($_POST['reponse']) AND !isset($_POST['counter']))
{
        $rand = $numobjetwin; // numéro à découvrir inclue dans la base de donnée non cripté ici
$cnt 	= $_SESSION['credit']; // Nombre de crédit restant
$id_user = $_SESSION['id_user']; // Identification membre
echo 'Tentez votre chance !!! 
'; 



donc dans la logique , il devrai le décompter de ma page car il le fait très bien dans la base de donnée !!! Franchement , là je bloque !!!
Commenter la réponse de FXPHANTOM
Messages postés
60
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
10 mai 2012
0
Merci
Ok merci , je vais regarder tes modifications de plus prés , je te tiendrai au courant du résultat ! mille merci !

Cordialement ,
FX
Commenter la réponse de FXPHANTOM
Messages postés
60
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
10 mai 2012
0
Merci
Ah ben ya du bon et du mauvais , mais on se rapproche de la vérité !
Alors je t'explique mes tests .

Donc j'ai utilisé ton code brillamment écrit et testé et le décompte se fait correctement lorsqu'on y joue.


1. Donc pour les tests , je pars dans le cas ou le chiffre n'a pas été trouvé et le gagnant non plus.

Lors de la connexion au compte membre , j'ai le message suivant : "Warning: mysql_result() [function.mysql-result]: Unable to jump to row 1 on MySQL result index 3 in /homez.318/kadoox/www/Vcompte.php on line 84" la ligne 84 correspond à "$numobjetwin = mysql_result($result, 1); // numéro à découvrir".

Lorsque j'essai d'inscrire le code a trouver , il me dit tout le temps "que le numéro mystère est inférieur!"

-FX-
Commenter la réponse de FXPHANTOM
Messages postés
60
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
10 mai 2012
0
Merci
En gros si je comprends bien , il ne trouve pas les valeurs de $winnerkadx et $numobjetwin ?
Commenter la réponse de FXPHANTOM
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
J'avais prévenu, j'ai écrit à la va vite !!

Tu peux simplement remplacer :
$query = "SELECT winnerkadx, numobjetwin FROM objetskdoox WHERE refobjet=1210110";
                        $result = mysql_query($query);
                        // Recuperation des resultats
                        $winnerkadx = mysql_result($result, 0); // gagnant du jeu
                        $numobjetwin = mysql_result($result, 1); // numéro à découvrir

par :
$query = mysql_query("SELECT winnerkadx, numobjetwin FROM objetskdoox WHERE refobjet=1210110");
$result = mysql_fetch_row($query); // 0=> gagnant du jeu, 1=> numéro à découvrir


Puis remplacer chaque occurrence de :
$winnerkadx par $result[0]
$numobjetwin par $result[1]

Je n'ai pas eu le temps de tester, j'aurai sans doute plus de temps ce soir.

Cordialement,


Kohntark -
Commenter la réponse de kohntark
Messages postés
60
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
10 mai 2012
0
Merci
Bonjour,

ok pas de soucis , tu as déjà fait du bon travail jusqu'à maintenant , donc si tu as un petit peu le temps ce soir pas de soucis , par contre je penses avoir résolu mon soucis hier soir "Warning: mysql_result() [function.mysql-result]: Unable to jump to row 1 on MySQL result index 3" .

J'ai remplacé :
$winnerkadx par $result[0]
$numobjetwin par $result[1] 


par :
$winnerkadx par $result[0]
$numobjetwin par $result[0] 


Par contre, un problème persiste toujours ... c'est le numéro à découvrir qui ne fonctionne pas , j'ai essayé d'afficher volontairement le chiffre en faisant un echo mais la valeur est vide ! et lorsque j'insère un numéro dans mon jeu , il me dit tout le temps que mon numéro est inférieur ... bizard !

-FX-
Commenter la réponse de FXPHANTOM