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