PHP valeur et boucle

Résolu
Bonjour, j'ai un fichier php qui doit produire une boucle avec des valeurs.
Or je me suis renseigner, je ne peux que les stocker (Valeur) en les enregistrant dans un fichier, or je veux l'upload sur un serveur simple sans édition de la part des joueurs.
Donc je veux que la valeur idt soit idt+1 et retourne la valeur.

Pour finir, je demande comment peut t-on changer la valeur = $_POST['idt']
Et comment recharger la page en gardant la valeur modifier ($_POST['idt'])

Si vous ne comprenez pas tout voici une autre forme :
$_POST['idt'] vaut au début "0"
Je veux qu'a chaque "F5" (Rechargement) il y est $_POST['idt'] plus 1
Et donc je recherche le moyen de recharger tout en gardant la valeur modifier.
Voilà mieux compris ?


@++ merci d'avance !
Configuration: Windows Vista
Firefox 3.5.3

29 réponses

Résumé de la discussion

Un script PHP doit incrémenter une valeur idt dans une boucle et la persister entre les rechargements sans intervention des joueurs ou des manipulations côté client. Plusieurs approches évoquées impliquent l'utilisation d un champ caché pour transporter $_POST['idt'] et l'incrémenter, ou l'emploi de sessions PHP pour stocker la valeur entre les requêtes. Des réponses proposent aussi de stocker la séquence dans un fichier et de lire ou modifier le contenu à chaque chargement, ou de réactualiser la page tout en conservant l'état. En pratique, les solutions les plus fiables consistent à privilégier les sessions ou les variables serveur plutôt que des valeurs transitant dans le client, pour éviter les manipulations et assurer la cohérence.

Bobot (l’IA à votre service)
  1. ben si c'est la question question c'est que c'est super pas optimisé ton truc !

    mais sinon tu ne peux le faire que par les sessions...

    ou un autre choix c'est de couper ton fichier en tableau et de faire une boucle for ou while ou un foreach suivant la composition de ton fichier...
    1. Bonjour,

      tu mets ton $_POST['idt'] dans un hidden (pour le cacher) puis tu l'incrémentes:

      <?php $val = $_POST['idt']+1; >
      <input type="hidden" value="<?php echo $val; ?>"/>

      J'ai pas testé. sinon avec les Sessions y'a pas de soucis et c'est simple.
      1. essai ça :

        function pseudoMdp($path,$pseudo,$mdp) {
        		if(file_exists($path) && $lines=file($path)) {
        			foreach($lines as $line) {
        				$e = explode(';',$line,2);
        				if($e[0] == $pseudo && $e[1] == $mdp) return true;
        			}
        		}
        		return false;
        	}
        	
        	$test = pseudoMdp('use.cfg',$_POST['pseudo'],$_POST['mdp']);


        si $test vaut true c'est que le mot de passe existe avec le pseudo sinon c'est que ce n'est pas bon soit une fonction qui n'a pas marché soit que le pseudo ou le mot de passe n'est pas bon
        1. voilà comment tu peux retrouver ton pseudo et ton mot de passe :

          <?php
          
          	function pseudoMdp($path,$pseudo,$mdp) {
          		if(file_exists($path) && $lines=file($path,FILE_SKIP_EMPTY_LINES)) {
          			foreach($lines as $line) {
          				$e = explode(';',$line,2);
          				if(trim($e[0]) == $pseudo && trim($e[1]) == $mdp) return true;
          			}
          		}
          		return false;
          	}
          	
          	$test = pseudoMdp('use.cfg',$_POST['pseudo'],$_POST['mdp']);
          	echo ($test)? 'pseudo et pass ok' : 'pseudo et mot de passe faux';
          
          ?>


          ton fichier use.cfg doit ressembler à ça :

          pseudo;mot de passe
          pseudo;mot de passe
          pseudo;mot de passe
          pseudo;mot de passe
          pseudo;mot de passe
          pseudo;mot de passe
          1. bonjour,

            c'est pas claire du tout mais tu peux utiliser les sessions pour faire ca...
            1. En faite ça je sais !
              Mais ça ne reste pas ! (La valeur)
              Merci d'avance
              1. c'est quoi le but de la manoeuvre?

                explique ce que tu veux faire sans parler de code...
                1. Hé bien je veux garder ma valeur principale et ajouter +1 puis recharger la page.
                  Sachant que en rechargeant la page, la valeur reste !
                  Merci d'avance
                  1. ma question c'était plutôt pourquoi as tu besoin d'augmenter ta valeur de 1 à chaque rechargement?

                    qui recharge la page? le site ou l'utilisateur? ça doit se recharger en boucle ou juste une fois? si ca se recharge en boucle c'est tout les combien de temps?
                    1. C'est la page php qui recharge pour permettre une boucle.
                      Cette boucle servira a trouver dans un fichier, une autre valeur donné par l'utilisateur.
                      Et qui déterminera si il existe ou pas.
                      Bref la valeur pseudo et mot de passe dans un fichier txt.
                      Mais ce n'est pas vraiment la question je crois. ^^
                      1. Session ?
                        Moi j'utilise :
                        	$delai=1;
                        	header("Refresh: $delai;"); 


                        C'est quoi ?
                        1. Excuse j'ai plus de droit a mon pseudo !
                          C'est moi G1bp
                          Mais comment récupérer la valeur de ton input ?
                          1. Voilà :
                            <html>
                            <title>Connexion <?php echo $_POST['pseudo']; ?> !</title>
                            <script language="javascript">
                            <!--
                            function load()
                            {
                            	window.location="Narvak.html";
                            	exit
                            }
                            //-->
                            </script>
                            <?php
                            $file = "use.cfg";
                            $file=fopen("$file","r");  // ouverture du fichier
                            $content = fgets($file, 4096); // stockage dans $content
                            $cnt = explode(";",$content);  // parsing des données basé sur ";")
                            $ps = $_POST['pseudo'];
                            $mdp = $_POST['mdp'];
                            $idt = $_POST['idt'];
                            $fin=count($content)-1;
                            if ($idt > $fin)
                            {
                            	echo "Erreur ! Pseudo et mot de passe non valide !";
                            	exit();
                            }
                            $sf = $cnt[$idt];
                            if ($ps == $sf)
                            {
                            	echo "Pseudo bon !";
                            	exit();
                            }
                            else
                            {
                            	$idt = $idt+1;
                            	$_POST['idt'] = $idt;
                            	$delai=1;
                            	header("Refresh: $delai;"); 
                            }
                            ?>
                            </html>

                            Merci d'avance
                            1. Tu mets un name :

                              <?php $val = $_POST['truc']+1; >
                              <input name="truc" type="hidden" value="<?php echo $val; ?>"/>
                              1. A oui mais Attropa a raison !
                                Trop difficile de plus où tu le recharge ?
                                1. Je vois pas ou est le soucis de ma solution. C'est simple en plus.

                                  Les sessions ok mais pour une variable, ouai.... pourquoi pas.
                                  1. comment tu écris tes données dans ton fichier texte?

                                    si tu enregistre comme ça

                                    pseudo;mot de passe
                                    pseudo;mot de passe

                                    tu peux facilement le faire sans recharger ta page !!!!

                                    par contre il faut que tu interdise le ; dans les pseudo !

                                    j'te fais une petite fonction
                                    • 1
                                    • 2