Probleme incrémentation compteur résultat formulaire [Résolu]

Signaler
Messages postés
6
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
15 août 2005
-
Messages postés
6
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
15 août 2005
-
voici mon code qui permet d'afficher le résultat
de 2 formulaire précédents mais le probleme c'est que les variables ne
s'incrémentent pas elle reste bloquer à 1


<?php


$a=0;


$b=0;


$d=0;


?>


<?php


switch($_POST['test21'])


{


case'coiffeur':


$a++;


break;





case'pharmacien':


$b++;


break;





case'medecin':


$b++;


break;





case'vous':


$d++;


break;


}


?>


<?php


switch($_POST['test22'])


{


case'classique':


$a++;


break;





case'original':


$b++;


break;





case'toriginal':


$d++;


break;


}


?>


<?


echo "$a";


?>





merci de votre aide j'ai chercher toute la journée en vain

13 réponses

Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
15
" Comme ceci c'est donc correct?"... Ben essaie!
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
15
$a=0;
$b=0;
$d=0;

... ca veut dire que chaque fois que tu appelles le formulaire, ces variables sont mises à zéro!



Essaie en effaçant ces trois lignes...
Messages postés
6
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
15 août 2005

merci d'avoir répondu aussi vite mais le compteur reste bloquer a 1
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
15
Hehe, ouais en fait c'est logique: php met lui même les variables à zéro.



Essaie avec les sessions pour a,b et d par exemple, ca marchera, sûr!



Le truc, c'est que chaque fois que le script est appelé, les variables
sont remises à zéro! Donc soit tu passes par les sessions, soit les
cookies, soit encore tu les passes par $_GET ou $_POST.... quoi qu'il
en soit, faut les passer ou les stocker!
Messages postés
6
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
15 août 2005

Est-ce que ceci est correct car j'ai toujours 1

<?

session_start();

?>

<?php

switch($_POST['test21'])

{

case'coiffeur':

$_SESSION['a']=$a++;

break;



case'pharmacien':

$_SESSION['b']=$b++;

break;



case'medecin':

$_SESSION['b']=$b++;

break;



case'vous':

$_SESSION['b']=$d++;

break;

}

?>

<?php

switch($_POST['test22'])

{

case'classique':

$_SESSION['a']=$a++;

break;



case'original':

$_SESSION['b']=$b++;

break;



case'toriginal':

$_SESSION['d']=$d++;

break;

}

?>
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
15
Nah!

<?php

session_start();



switch($_POST['test21'])

{

case'coiffeur':

$_SESSION['a']++;

break;



case'pharmacien':

$_SESSION['b']++;

break;



case'medecin':

$_SESSION['b']++;

break;



case'vous':

$_SESSION['b']++;

break;

}

?>

etc...



Plus d'infos sur http://nl3.php.net/manual/fr/ref.session.php !
ah merci en effet j'avais essayer les sessions mais mon erreur était
que je ne m'était pas session start en début de chaque récupération de
formulaire

<?php
session_start();

switch($_POST['test21'])
{
case'coiffeur':
$_SESSION['a']++;
break;

case'pharmacien':
$_SESSION['b']++;
break;

case'medecin':
$_SESSION['b']++;
break;

case'vous':
$_SESSION['b']++;
break;
}
?>

<?php

session_start();

switch($_POST['test22'])

{

case'classique':

$_SESSION['a']++;

break;



case'original':

$_SESSION['b']++;

break;



case'toriginal':

$_SESSION['d']++;

break;

}

?>



Comme ceci c'est donc correct?

En tout cas merci beaucoup pour ton aide précieuse
Messages postés
6
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
15 août 2005

sniff ca marche pas je comprend pas ce qui vas pas
Messages postés
6
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
15 août 2005

sniff ca marche pas je comprend pas ce qui vas pas
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,



vérifie avec isset() que tes formulaires sont bien transmis, et pour
que ça marche il faut stocker une valeur initiale pour ton compteur...
donc le coup de la session ça va pour un seul visiteur, mais ça sera
remis à zéro après... Et n'utilise pas de variables non définies, il
faut les définir avant, PHP ne met pas 0 par défaut...

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
15
Antho: "PHP ne met pas 0 par défaut", alors question: pourquoi si je ne definis pas une variable et qu'en suite si je fais ++, elle vaut 1? A mon avis c'est que comme php voit une operation sur un nombre, il decide que la variable non definie en est un et le met a zero... mais j'ai aucune preuve de ce que j'avance
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
"alors question: pourquoi si je ne definis pas une variable et qu'en suite si je fais ++, elle vaut 1"



Tout à fait, mais si tu mets l'error_reporting à E_ALL, tu auras une
erreur, ta variable ne vaudra pas 1. Ce que je veux dire par là c'est
que la variable est mise à 0 avec une certaine configuration de PHP qui
n'est pas la bonne malheureusement.



Il faut définir la variable avant pour ne pas avoir d'erreurs.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
6
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
15 août 2005

Merci a tous de votre aide, j'ai réussi a résoudre mon probleme avec les sessions.