IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Variable qui disparait apres formulaire [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Par défaut Variable qui disparait apres formulaire
    Bonjour a tous !
    Mon problème est le suivant, apres le formulaire de sauvegarde, les variables de mon array disparaissent .. lorsque j'enlève la condition du if (
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['enr_perso'] == "oui" )
    tout marche, mais j'aimerai bien demander la validation de la sauvegarde.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <form action="cible.php" method="post">
       Vous avez 15 points a répartir: <br/>
       Force    <INPUT type="texte" name="Force"><br/>
       Defense  <INPUT type="texte" name="Defense"><br/>
       Agilite   <INPUT type="texte" name="Agilite"><br/>
       	<input type="hidden" name="Classe" value= "<?php echo $_POST['Classe'] ; ?>" />
    	<input type="hidden" name="Pseudo" value= "<?php echo $_POST['Pseudo']; ?>" />
       <input type="submit" value="Valider" />
    </FORM>
     
    <?php 
    // Si il a mis trop de pits
    	if ( $_POST['Force'] + $_POST['Defense'] +$_POST['Agilite'] > 15 )
    	{
    	 echo 'Yo yo yo, tu a mis carrement trop de point, recommence !';
    	}
    // Si tout est bon
    	if (isset( $_POST['Force']) 
    	AND isset($_POST['Defense']) 
    	AND isset( $_POST['Agilite']) 
    	and $_POST['Force'] + $_POST['Defense'] +$_POST['Agilite'] == 15 )
    	{
    		$stat_crea = array(
    		'Force' => $_POST['Force'], 
    		'Defense'=>$_POST['Defense'],
    		'Agilite' => $_POST['Agilite'],
    		'Vie'=>$_POST['Force']*3.5);
     
    			echo "Tu Deviendra puissant et fort ! Tes Caracteres de départ sont les suivants :<br />";	
    		foreach($stat_crea as $cle => $element)
    		{
    			echo '[' . $cle . '] = ' . $element . '<br />';
    		}	
    		?>
     
     
    		Veut tu enregistrer ton personnage ?
    	<form action="cible.php" method="post">
    <p>
    	<input type="radio" name="enr_perso" value="oui" id="oui" checked="checked" /> <label for="oui">Oui</label>
        <input type="radio" name="enr_perso" value="non" id="non" /> <label for="non">Non</label>
    	<input type="hidden" name="Classe" value= "<?php echo $_POST['Classe'] ; ?>" />
    	<input type="hidden" name="Pseudo" value= "<?php echo $_POST['Pseudo']; ?>" />
        <input type="submit" value="Valider" />
    </p>
    </form>
       <?php 
    	if ( $_POST['enr_perso'] == "oui" )
    	{
    	echo 'En marche';
     
    	try
    									{
    										$bdd = new PDO('mysql:host=localhost;dbname=jeux', 'root', '');
    										$bdd->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
     
    									}
    									catch (Exception $e)
    									{
    											die('Erreur : ' . $e->getMessage());
    									}
    	 $req = $bdd->prepare('INSERT INTO joueur(Nom,Classe,Strengh,Agilite,Defense,Vie) VALUES(?,?,?,?,?,?)');
    	 $req->execute(array($_POST['Pseudo'], $_POST['Classe'],$stat_crea['Force'],$stat_crea['Agilite'],$stat_crea['Defense'],$stat_crea['Vie'] )) ;
     
    	 echo 'fini';
     
    	}
     
    	}
    // Si il n'a pas mis assez de pts
    	else 
    	{ 
    		echo " Tu n'a pas attribuer tout les points ! " ; 
     
     
    	}

  2. #2
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Par défaut
    Bonjour

    Tu perd tes variables parce que tu utilises deux formulaires sans faire passer toutes les valeurs de l'un à l'autre.

    Comme tu as fais pour la classe et le pseudo, tu peux aussi ajouter la froce, agilite, vie et la défense dans des champs cachés.

    Tu peux aussi enregistré le résultat dans un 1er temps dans une variable de session PHP.

    Exemple avec le passage de variable via champs cachés :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Veut tu enregistrer ton personnage ?    
        <form action="cible.php" method="post">    
            <p>    
                <input type="radio" name="enr_perso" value="oui" id="oui" checked="checked" /> <label for="oui">Oui</label>    
                <input type="radio" name="enr_perso" value="non" id="non" /> <label for="non">Non</label>    
                <input type="hidden" name="Classe" value= "<?php echo $_POST['Classe']; ?>" />
                <input type="hidden" name="Pseudo" value= "<?php echo $_POST['Pseudo']; ?>" />
                <!-- ajout des variables cachés -->
                <input type="hidden" name="Pseudo" value= "<?php echo $_POST['Force']; ?>" />
                <input type="hidden" name="Pseudo" value= "<?php echo $_POST['Defense']; ?>" />
                <input type="hidden" name="Pseudo" value= "<?php echo $_POST['Agilite']; ?>" />
                <input type="hidden" name="Pseudo" value= "<?php echo $_POST['Vie']; ?>" />
                <input type="submit" value="Valider" />    
            </p>    
        </form>

    Petite note :
    1) attention à la sécurité. ne fais jamais confiance au données envoyé par un utilisateur : sécurisé toutes tes variables $_POST ou du moins ne les affiches pas sans utiliser un htmlentities(); au minimum.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Par défaut
    Pour ce qui est de transmettre les variables en caché j'ai déjà essayer, même problème, effectivement je pense plutôt utilisé les $_SESSION pour transité plus facilement, mais encore là j'ai quelques petit soucis, es ce que pour utilisé ses variables je dois effectué <?php session_start(); ?> ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Par défaut
    Merci ! J'ai résolu le probleme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Shellscript: variable qui disparait
    Par frankois dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 23/01/2009, 15h51
  2. fenetre DOS qui disparait après fin d'execution
    Par Gwindor dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 10/07/2008, 09h36
  3. Variables qui disparaissent aprés une redirection
    Par xclam dans le forum Langage
    Réponses: 2
    Dernier message: 22/09/2007, 11h38
  4. Contenu d'une variable qui disparait :/
    Par Aleksis dans le forum C++
    Réponses: 10
    Dernier message: 02/06/2006, 15h50
  5. Variable qui change après un DispatchMessage
    Par SekYo dans le forum Windows
    Réponses: 9
    Dernier message: 30/09/2004, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo