France Hardware : Forums de discussion
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
22 319 membres enregistrés - 1 871 674 posts - 95 038 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Langages Web
                [PHP] variable non stocké
29 connectés(record : 207 le 05 juin 2007 - 05 h 23)

Vous devez vous connecter pour répondre au topic.
[PHP] variable non stocké

betux
Coordinateur
testis ...

Messages : 2 851
Inscrit le 08/10/03
Ville : lyon et parfois grenoble
Non connecté
  Posté le 06 janvier 2008 - 21 h 18 m 18 s
hello,

pour m'exercer en php je fais une petite calculette (classique)

ci joint mon bout de code (pas frapper :D )

Je récupère bien qd je clic sur une image buton la variable mais qd je reclique pour concatener j'ai l'impression qu'il ne garde pas la variable. Alors comme j'ai pas de debogueur je ne peux pas voir mes variables ni avoir un mode pas à pas (snif!)
une idée ?

merci.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<?php
/* $Operateur;
$Resultat;
$Nombre; */
/* settype($Nombre,"string") ; */
/* $Memup; */

if (isset($_POST["un_x"])){$Nombre= "1". $Nombre;}
if (isset($_POST["deux_x"])){ $Nombre="2". $Nombre ;}
if (isset($_POST["trois_x"])){ $Nombre="3". $Nombre ;}
if (isset($_POST["quatre_x"])){ $Nombre="4". $Nombre ;}
if (isset($_POST["cinq_x"])){ $Nombre="5" . $Nombre;}
if (isset($_POST["six_x"])){ $Nombre="6". $Nombre ;}
if (isset($_POST["sept_x"])){ $Nombre="7". $Nombre ;}
if (isset($_POST["huit_x"])){ $Nombre="8". $Nombre ;}
if (isset($_POST["neuf_x"])){ $Nombre="9". $Nombre ;}
if (isset($_POST["plus_x"])){ $Operateur="+" ; $Memup = $Nombre;}
/* if (isset($_POST["entree"])){$Nombre = var_dump($Nombre.$Operateur.$Memup);} */
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>calculatrice</title>
</head>

<body>
<form id="form1" method="post" >
<?php echo("Bonjour "); echo("Olivier !");?>
<table width="587" height="236" border="1">
<td><label></label>
Chiffre<td><input type="text" name="montant" id="montant" /> </td>
<td>Résultat
</td>
<td>
<?php echo "nombre : $Nombre <br> Memup : $Memup <br> Operateur : $Operateur"; ?>

</td>
<tr>
<td><input type="image" name="un" id="un" src="images/1.png" /> </td>
<td><input type="image" name="deux" id="deux" src="images/2.png" /></td>
<td><input type="image" name="trois" id="trois" src="images/3.png" /></td>
<td><input type="image" name="plus" id="plus" src="images/plus.png" /></td>
</tr>
<tr>
<td><input type="image" name="quatre" id="quatre" src="images/4.png" /></td>
<td><input type="image" name="cinq" id="cinq" src="images/5.png" /></td>
<td><input type="image" name="six" id="six" src="images/6.png" /></td>
<td><input type="image" name="entree" id="entree" src="images/entrée.png" /></td>
</tr>
<tr>
<td><input type="image" name="sept" id="sept" src="images/7.png" /></td>
<td><input type="image" name="huit" id="huit" src="images/8.png" /></td>
<td><input type="image" name="neuf" id="neuf" src="images/9.png" /></td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</form>
</body>
</html>



Il faut que le hasard renverse la fourmi pour qu elle voit le ciel.

grabber
Coordinateur
MacBook Pro 2,4 Powered

Messages : 8 510
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 07 janvier 2008 - 00 h 18 m 27 s
hello,

pour voir tes variables tu peux utiliser cette portion de code :
    Code php    
1. while (list ($key, $val) = each ($_POST)) {
2.   echo "key: ".$key." / val: ".$val."<br />";
3. }


en fait pour ta concatenation c'est normal, les input image se comportent comme des input submit, du coup a chaque fois que tu clic, ca envoit le formulaire et celui ci ne contient que les variables envoyees, donc en gros, que la touche que tu clic. il n'y a pas conservation de la valeur precedente puisque c'est un nouvel envoi.

si tu voulais conserver la valeur pour t'en resservir, il faudrait a la rigueur passer par une session. la session te permet une fois qu'elle est demarree et jusqu'a sa fermeture de faire transiter les variables qui t'interessent.

pour cela il suffit de mettre en haut de ta page un : session_start();
ensuite, tu peux creer des variables de sessions comme ca : $_SESSION['ma_variable'];

typiquement ici je dirais que c'est pas un truc a faire en php car le cote serveur n'apporte rien, c'est plus un truc a faire en javascript cote client ;)
une action par bouton qui va concatener la valeur actuelle avec ce que tu tapes, pour les operateurs, idem, une action qui lance le calcul et met a jour le champ.




:firefox:

betux
Coordinateur
testis ...

Messages : 2 851
Inscrit le 08/10/03
Ville : lyon et parfois grenoble
Non connecté
  Posté le 07 janvier 2008 - 09 h 36 m 40 s
ça garde pas ... ah ... bon .. ;o)

je sais bien que c'est plutôt du java mais là c'est une demande en client serveur :D

je vais passer par la session.

merci grab'



Il faut que le hasard renverse la fourmi pour qu elle voit le ciel.

Woofy
Pour les bons tuyaux me demander

Messages : 26 008
Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
  Posté le 07 janvier 2008 - 09 h 45 m 42 s
Ben faut savoir que un serveur web n'a en mémoire (hormis cookies et session) que les variables qui sont définies ou calculées entre la réception de la requête et l'envoie de la réponse. Après, le programme se termine et toutes les variables sont perdues.
Cependant il reste les variables de session, les cookies, et les variables d'environnement qui sont "presque" persistent (une session périme par défaut après 15 minuites d'inactivité je crois, un cookie jusqu'a effacement ou expiration qui est a définir).



:smileymouth: Totalement inutile, donc completement indispensable :smileymouth:

:sms:


betux
Coordinateur
testis ...

Messages : 2 851
Inscrit le 08/10/03
Ville : lyon et parfois grenoble
Non connecté
  Posté le 07 janvier 2008 - 09 h 49 m 32 s
tu as entierement raison woffy c'est moi qui ai de mauvaise habitude, le mode mano ça permet de revenir à la source :D



Il faut que le hasard renverse la fourmi pour qu elle voit le ciel.

betux
Coordinateur
testis ...

Messages : 2 851
Inscrit le 08/10/03
Ville : lyon et parfois grenoble
Non connecté
  Posté le 07 janvier 2008 - 12 h 33 m 37 s
yes !! merci grab et woffy la session rulez !! :yes:



Il faut que le hasard renverse la fourmi pour qu elle voit le ciel.

grabber
Coordinateur
MacBook Pro 2,4 Powered

Messages : 8 510
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 07 janvier 2008 - 13 h 00 m 41 s
petite precision pour la session, effectivement celle-ci expire a la fermeture de la page du navigateur ou apres une periode d'inactivite, cela dit cette periode reste parametrable directement sur le serveur dans le fichier php.ini (quelque soit la plateforme :jap: ) via session.lifetime

vla un bon tuto sur les sessions, tu y toruvera tout ce qui est necessaire a une bonne gestion :jap:

http://cyberzoide.developpez.com/php4/faqsession/

bonne lecture :)



:firefox:

betux
Coordinateur
testis ...

Messages : 2 851
Inscrit le 08/10/03
Ville : lyon et parfois grenoble
Non connecté
  Posté le 07 janvier 2008 - 15 h 27 m 03 s
merki :jap:



Il faut que le hasard renverse la fourmi pour qu elle voit le ciel.

Page genérée en 0.5132 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL |Actualité ADSL | e-commerce | Commande Au Volant
Creative Commons
Message Boards and Forums Directory