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. Ta raison sa marche !
    J'avais mis un ";" à la fin de chaque ligne huhu je pensais que t'avais oublier quekchose !
    Merci ! Merci ! Merci ! Merci ! ... eu un dernier Merci ! ^^
    @++ j'ai maintenant la base de mon programme
    1. Bonjour
      Pour conclure, vu que c'est un sacré capharnaüm.
      La solution était ceci :
      load($idt);

      function ($idt)
      {
      [code]

      load($idt);
      }

      Je fais désormais ça pour les boucles, rapide, souple et simple.
      @++
  2. pour qu'il fonctionne il faut que ton fichier soit strictement comme je l'ai mis

    après tu peux le modifier pour l'adapter, mettre plus de valeurs par lignes, faire qu'il retourne un tableau avec les valeurs de la ligne correspondante le numéro de ligne si tu veux aussi...

    j'ai fais ça à titre d'exemple
    1. Ton processus ne marche pas !
      C'est quoi en faite ce code ?
      Merci d'avance
      1. C'est pour faire un JDR !
        Donc il doit ressembler à ça :

        pseudo;mdp;level;...;[Les armes];
        pseudo;mdp;level;...;[Les armes];
        pseudo;mdp;level;...;[Les armes];
        pseudo;mdp;level;...;[Les armes];

        Seulement les armes n'ont aucun nombres de valeur définis.
        Bon je vais tester ! Mais une petite question subsidiaire : Garde t-on la ligne de la valeur du pseudo référencé.
        Je m'explique : Si le pseudo est "flag" à la ligne 7. Garde t-on la valeur "7" ?

        Encore merci :)
        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. 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. Non plus pour les fichiers !
              J'ai écrit en haut ! Non, non il me faut un rechargement !
              Je suis désoler mais je ne peux rien faire d'autre.
              A part les cookies mais j'aime par trop ça !
              1. Bien, je rentre ça. T dac ?
                Ok, il m'affiche donc un input, et puis il lance ton prototype pour le save dans la variable.
                Puis rechargement. Jusque là tout vas bien !
                Mais tu tape quoi pour le recharger ? Sache que les donnés vienne d'une page html.
                Hum de plus je veux une page presque vide (Pour construire la suite)
                A revoir ^^ mais te décourage 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. 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. A oui mais Attropa a raison !
                      Trop difficile de plus où tu le recharge ?
                      1. Tu mets un name :

                        <?php $val = $_POST['truc']+1; >
                        <input name="truc" type="hidden" value="<?php echo $val; ?>"/>
                        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. Excuse j'ai plus de droit a mon pseudo !
                            C'est moi G1bp
                            Mais comment récupérer la valeur de ton input ?
                            • 1
                            • 2