PHP valeur et boucle
RésoluOr 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
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.
-
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 -
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 -
Ton processus ne marche pas !
C'est quoi en faite ce code ?
Merci d'avance -
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 :) -
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
-
je répondrais demain !
Moi je vais manger ... @++ -
Je vais essayer ... merci !
-
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 -
Bon bah je laisse tomber ? snif
-
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 ! -
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 -
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 -
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. -
A oui mais Attropa a raison !
Trop difficile de plus où tu le recharge ? -
Tu mets un name :
<?php $val = $_POST['truc']+1; >
<input name="truc" type="hidden" value="<?php echo $val; ?>"/> -
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 -
les sessions c'est des super global stocké dans un fichier :
https://www.php.net/manual/fr/book.session.php
https://www.php.net/manual/fr/reserved.variables.session.php
mais ne fais pas comme ça pour rechercher dans un fichier !
je crois que tu ne peux pas faire plus lourd et plus long que comme ça
donne moi la composition de ton fichier et j'te montre un petit truc si tu veux mais fais pas comme ça ! -
Excuse j'ai plus de droit a mon pseudo !
C'est moi G1bp
Mais comment récupérer la valeur de ton input ? -
Pas de soucis ;)
Bonne continuation ! -
Super ! Merci !
- 1
- 2