Incrémenter en php
Loreena
-
Fallentree Messages postés 2445 Statut Membre -
Fallentree Messages postés 2445 Statut Membre -
Bonjour a toutes et a tous
Mon problème est le suivant : Je dois créer une page, avec trois boutons, +1 -1 et raz.
Il faut imaginer par exemple que c'est un concert et a chaque personne qui entre dans la salle la personne au guichet clique sur +1, ou -1 si quelqu'un sort, avec un nombre max de personnes, et 0 en minimum. Il faut aussi a côté de ça que cela calcule le total d'argent gagné en fonction du nombre de personnes qui entrent.
Alors, j'ai réussi a faire fonctionner le +1, et l'affichage de l'argent en fonction du nombre de personnes, mais je n'arrive pas a faire le -1 et la raz.
Voici ce que j'ai fait :
<?
$ajout=$_POST['ajout'];
$moins=$_POST['moins'];
$places=50; ?>
<pre>
<?print_r($_POST)?>
</pre>
<?
if(isset($_POST['total_personnes']));
{
$_POST['total_personnes']>=0;
}
if(!empty($ajout));
{
$_POST['total_personnes']++;
}
if(isset($_POST['personnes_parties']));
{
$_POST['personnes_parties']<= 50;
}
if(empty($moins));
{
$_POST['personnes_parties']--;
}
print"Personnes présentes dans la salle =".$_POST['total_personnes'];
?>
<br>
<?
print"Somme totale en euros =".$_POST['total_personnes']*5;
?>
<br>
<form METHOD=POST>
<input type=submit value="+1" name="ajout">
<input type=hidden name=total_personnes value= <? print $_POST['total_personnes']; ?>>
</form>
<form METHOD=POST>
<input type=submit value="-1" name="moins">
<input type=hidden name=personnes_parties value= <? print $_POST['personnes-parties']; ?>>
</form>
<form METHOD=POST>
<input type=submit value="raz" name="raz">
</form>
Pourriez vous m'indiquer ce qui ne va pas svp ?
Merci beaucoup !
Mon problème est le suivant : Je dois créer une page, avec trois boutons, +1 -1 et raz.
Il faut imaginer par exemple que c'est un concert et a chaque personne qui entre dans la salle la personne au guichet clique sur +1, ou -1 si quelqu'un sort, avec un nombre max de personnes, et 0 en minimum. Il faut aussi a côté de ça que cela calcule le total d'argent gagné en fonction du nombre de personnes qui entrent.
Alors, j'ai réussi a faire fonctionner le +1, et l'affichage de l'argent en fonction du nombre de personnes, mais je n'arrive pas a faire le -1 et la raz.
Voici ce que j'ai fait :
<?
$ajout=$_POST['ajout'];
$moins=$_POST['moins'];
$places=50; ?>
<pre>
<?print_r($_POST)?>
</pre>
<?
if(isset($_POST['total_personnes']));
{
$_POST['total_personnes']>=0;
}
if(!empty($ajout));
{
$_POST['total_personnes']++;
}
if(isset($_POST['personnes_parties']));
{
$_POST['personnes_parties']<= 50;
}
if(empty($moins));
{
$_POST['personnes_parties']--;
}
print"Personnes présentes dans la salle =".$_POST['total_personnes'];
?>
<br>
<?
print"Somme totale en euros =".$_POST['total_personnes']*5;
?>
<br>
<form METHOD=POST>
<input type=submit value="+1" name="ajout">
<input type=hidden name=total_personnes value= <? print $_POST['total_personnes']; ?>>
</form>
<form METHOD=POST>
<input type=submit value="-1" name="moins">
<input type=hidden name=personnes_parties value= <? print $_POST['personnes-parties']; ?>>
</form>
<form METHOD=POST>
<input type=submit value="raz" name="raz">
</form>
Pourriez vous m'indiquer ce qui ne va pas svp ?
Merci beaucoup !
A voir également:
- Incrémentation php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php ✓ - Forum PHP
- Php alert ✓ - Forum PHP
- Alert PHP - Forum PHP
13 réponses
Bonjour,
JE crois bien que le problème vient du faite d'avoir plusieurs formulaire sur une même page.
Tu peut utiliser javascript pour régler le problème.
JE crois bien que le problème vient du faite d'avoir plusieurs formulaire sur une même page.
Tu peut utiliser javascript pour régler le problème.
Fallentree
Messages postés
2445
Statut
Membre
209
Fais en qu un seul ...
essai avec ça ...
au lieu de :
Mais je crois bien que plusieurs formulaire pose problème en html, à moins peut-être d'utiliser les spécification de html5.
IL faut obligatoirement que ce soit des boutons ? sinon trois bouton radio et un bouton submit dans un seul form fera grandement l'affaire ^^
if(!empty($moins));
au lieu de :
if(empty($moins));
Mais je crois bien que plusieurs formulaire pose problème en html, à moins peut-être d'utiliser les spécification de html5.
IL faut obligatoirement que ce soit des boutons ? sinon trois bouton radio et un bouton submit dans un seul form fera grandement l'affaire ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'insiste sur la fait que ça ne fonctionnera jamais, parce que tes variables ne sont pas enregistrés, les variables normales sont détruites a la fin de l'exécution la page, donc quand tu cliquera de nouveau, y aura aucune variables qui contiendrait le nombre de personnes déjà entrés ...
Pour se faire ...
Tu dois utiliser la variables globale, or, $_SESSION ou $_COOKIE
Les variables de session ne seront supprimé qu'après la fermeture du navigateur ...
Mettez en résolu quand c'est résolu -.- ...
Pour se faire ...
Tu dois utiliser la variables globale, or, $_SESSION ou $_COOKIE
Les variables de session ne seront supprimé qu'après la fermeture du navigateur ...
Mettez en résolu quand c'est résolu -.- ...
Zhp, j'ai essayé cela ne fonctionne pas, mais merci.
JooS je débute en php, et je ne sais malheureusement pas m'en servir. merci
JooS je débute en php, et je ne sais malheureusement pas m'en servir. merci
Ok, j'explique ...
Les variables simple ne sont conservés que pendant l'exécution de la page, donc elles seront supprimés une fois la page chargée.
Donc il te faut un endroit ou enregistrer tes données pendant un bon moment.
1 - Tu peut soit utiliser Les variables globales $_SESSION.
1 - Soit utiliser Les variables globales $_COOKIE.
3 - Soit utiliser un fichier texte.
4 - Sinon, une base de données.
Les variables globales sont les plus pratiques en ce qui concerne ton exercice, et plus précisément, les SESSIONS, parce qu'ils sont plus sécurisés et ne peuvent pas être modifiés par un utilisateur autre que toi même.
Les fichiers textes se trouvent être moins pratiques.
Les bases de données sont utilisable généralement pour une bonne quantités de données, et non pas seulement pour un nombre.
Pour utiliser les $_SESSION, tu doit toujours mettre le code suivant au début de chaque page ...
Exemple :
Tu remarquera que le nombre s'incremente a chaque fois que tu actualise la page ..., ce qui est la preuve que la valeur est conservé.
Essaye la même chose avec un variable simple.
Voir aussi le site du zero pour plus d'informations.
Mettez en résolu quand c'est résolu -.- ...
Les variables simple ne sont conservés que pendant l'exécution de la page, donc elles seront supprimés une fois la page chargée.
Donc il te faut un endroit ou enregistrer tes données pendant un bon moment.
1 - Tu peut soit utiliser Les variables globales $_SESSION.
1 - Soit utiliser Les variables globales $_COOKIE.
3 - Soit utiliser un fichier texte.
4 - Sinon, une base de données.
Les variables globales sont les plus pratiques en ce qui concerne ton exercice, et plus précisément, les SESSIONS, parce qu'ils sont plus sécurisés et ne peuvent pas être modifiés par un utilisateur autre que toi même.
Les fichiers textes se trouvent être moins pratiques.
Les bases de données sont utilisable généralement pour une bonne quantités de données, et non pas seulement pour un nombre.
Pour utiliser les $_SESSION, tu doit toujours mettre le code suivant au début de chaque page ...
session_start();pour lancer la session.
Exemple :
<?php session_start(); if(!isset($_SESSION['nom_de_variable'])) $_SESSION['nom_de_variable'] = 0; $_SESSION['nom_de_variable']++; echo $_SESSION['nom_de_variable']; ?>
Tu remarquera que le nombre s'incremente a chaque fois que tu actualise la page ..., ce qui est la preuve que la valeur est conservé.
Essaye la même chose avec un variable simple.
Voir aussi le site du zero pour plus d'informations.
Mettez en résolu quand c'est résolu -.- ...
<?php session_start();
// session reste en memoire seulement si le navigateur n'est pas ferme
// remise a zéro ou initialisation de programme
if( ! isset($_SESSION['nbrEntrees']) or isset($_POST['etatProgramme']))
{
$_SESSION['nbrEntrees'] = 0 ;
$_SESSION['nbrSorties'] = 0 ;
$_SESSION['prixParPlace'] = 5 ;
$_SESSION['nbrPlaceMax'] = 50 ;
}
//fin de l'initialisation ou la remise a zero
// compte les entrees
if ( isset($_POST['nbrEntrees']) )
{
$_SESSION['nbrEntrees'] = ($_SESSION['nbrEntrees'] +1) ;
}
// compte les sorties
if ( isset($_POST['nbrSorties']) )
{
$_SESSION['nbrSorties'] = ($_SESSION['nbrSorties'] -1) ;
}
?>
<br />
<p><?php // visuel des infos sur le nombre de places ect...
echo "Place actuelement utilisé=".($_SESSION['nbrEntrees']+$_SESSION['nbrSorties'])
."<br /> Prix=".($_SESSION['prixParPlace']*$_SESSION['nbrEntrees'])
."<br /> place restantes=".($_SESSION['nbrPlaceMax']-($_SESSION['nbrEntrees']+$_SESSION['nbrSorties']) )
;
?>
</p>
<!-- commandes utilisateur en html -->
<form METHOD="POST" action="ccm1.php">
<input type="submit" value="+1" name="ajout" />
<input type="hidden" name="nbrEntrees" value= "<?php echo $_SESSION['nbrEntrees'] ?>" />
</form>
<form METHOD="POST" action="ccm1.php">
<input type="submit" value="-1" name="moins">
<input type="hidden" name="nbrSorties" value= "<?php echo $_SESSION['nbrSorties'] ?>" />
</form>
<!-- envoi de la variable post etatProgramme pour la remie a zero -->
<form METHOD="POST" action="ccm1.php">
<input type="submit" value="raz" name="raz" />
<input type="hidden" name="etatProgramme" value= "0" />
</form>
// session reste en memoire seulement si le navigateur n'est pas ferme
// remise a zéro ou initialisation de programme
if( ! isset($_SESSION['nbrEntrees']) or isset($_POST['etatProgramme']))
{
$_SESSION['nbrEntrees'] = 0 ;
$_SESSION['nbrSorties'] = 0 ;
$_SESSION['prixParPlace'] = 5 ;
$_SESSION['nbrPlaceMax'] = 50 ;
}
//fin de l'initialisation ou la remise a zero
// compte les entrees
if ( isset($_POST['nbrEntrees']) )
{
$_SESSION['nbrEntrees'] = ($_SESSION['nbrEntrees'] +1) ;
}
// compte les sorties
if ( isset($_POST['nbrSorties']) )
{
$_SESSION['nbrSorties'] = ($_SESSION['nbrSorties'] -1) ;
}
?>
<br />
<p><?php // visuel des infos sur le nombre de places ect...
echo "Place actuelement utilisé=".($_SESSION['nbrEntrees']+$_SESSION['nbrSorties'])
."<br /> Prix=".($_SESSION['prixParPlace']*$_SESSION['nbrEntrees'])
."<br /> place restantes=".($_SESSION['nbrPlaceMax']-($_SESSION['nbrEntrees']+$_SESSION['nbrSorties']) )
;
?>
</p>
<!-- commandes utilisateur en html -->
<form METHOD="POST" action="ccm1.php">
<input type="submit" value="+1" name="ajout" />
<input type="hidden" name="nbrEntrees" value= "<?php echo $_SESSION['nbrEntrees'] ?>" />
</form>
<form METHOD="POST" action="ccm1.php">
<input type="submit" value="-1" name="moins">
<input type="hidden" name="nbrSorties" value= "<?php echo $_SESSION['nbrSorties'] ?>" />
</form>
<!-- envoi de la variable post etatProgramme pour la remie a zero -->
<form METHOD="POST" action="ccm1.php">
<input type="submit" value="raz" name="raz" />
<input type="hidden" name="etatProgramme" value= "0" />
</form>
Espérant que t'essayera de comprendre !
Mettez en résolu quand c'est résolu -.- ...
<?php
//---------------------------------------------------------------------------
// POUR LANCER UNE SESSION
session_start();
define('MAX_PLACES',100); // Nombre maximum de places
define('PRIX_TICKET',200); // 200€
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// SI LA VARIABLE GLOBAL "$_SESSION['nbre_personnes']" N'EXISTE PAS ENCORE, ALORS ON LA CREE ET ON L'INITIALISE A 0
if(!isset($_SESSION['nbre_personnes'])) $_SESSION['nbre_personnes'] = 0;
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// SI LE BOUTTON +1 A ETE CLIQUE, ET QUE LE NOMBRE DE PERSONNE N'A PAS ENCORE ATTEINT LE NOMBRE DE PLACES MAXIMUM, ALORS ON INCREMENTE
if(isset($_POST['+1']) AND $_SESSION['nbre_personnes'] < MAX_PLACES) {
$_SESSION['nbre_personnes']++;
}
// SINON SI LE BOUTTON -1 A ETE CLIQUE, ET QUE LE NOMBRE DE PERSONNE N'A PAS ENCORE ATTEINT 0, ALORS ON DESCREMENTE
elseif(isset($_POST['-1']) AND $_SESSION['nbre_personnes'] > 0) {
$_SESSION['nbre_personnes']--;
}
// SINON SI C'EST LE BOUTTON "REMETTRE A ZERO" QUI A ETE CLIQUE, ALORS ON REMET LE NOMBRE DE PERSONNES A 0
elseif(isset($_POST['resetTo0'])) {
$_SESSION['nbre_personnes'] = 0;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// MAX_PLACES-$_SESSION['nbre_personnes'] NOUS DONNE LE NOMBRE DE PLACES RESTANTES
echo '<div class"info">';
echo '<span class="info_ligne">Nombre de personnes presentes : '.$_SESSION['nbre_personnes'].'</span>';
echo '<span class="info_ligne">Nombre de places réstantes : '.(MAX_PLACES-$_SESSION['nbre_personnes']).'</span>';
echo '<span class="info_ligne">Argent recolte : '.(PRIX_TICKET*$_SESSION['nbre_personnes']).' €</span>';
echo '</div>';
//---------------------------------------------------------------------------
?>
<div class="forms">
<form method="POST" action="#">
<input type="submit" name="+1" value="+1" />
</form>
<form method="POST" action="#">
<input type="submit" name="-1" value="-1" />
</form>
<form method="POST" action="#">
<input type="submit" name="resetTo0" value="Remettre a zero" />
</form>
</div>
<style>
.info {
display:block;
}
.info_ligne {
border: 1px solid black;
padding:5px;
display:block;
margin:3px;
width:300px;
text-align:center;
}
.forms {
border: 1px solid grey;
padding:5px;
margin:3px;
width:300px;
text-align:center;
}
.forms form {
display:inline;
}
</style>
Mettez en résolu quand c'est résolu -.- ...
essai ca...
<?php
$places=50;
$personnes_parties=0;
$total_personnes=20;
echo "<pre>";
if (isset($_POST)) {
print_r($_POST);
echo "</pre>";
if(isset($_POST['ajout'])) {
$total_personnes=$_POST['total_personnes']+1;
}
if(isset($_POST['moins']))
{
$total_personnes=$_POST['total_personnes']-1;
if(isset($_POST['personnes_parties']))
{
$personnes_parties=$_POST['personnes_parties']-1;
}
}
echo "Personnes présentes dans la salle =".$total_personnes."<br>";
echo "Somme totale en euros =".($total_personnes*5)."<br>";
}
?>
<form METHOD=POST>
<input type=submit value="+1" name="ajout">
<input type=hidden name=total_personnes value= <?php echo $total_personnes; ?>>
<input type=submit value="-1" name="moins">
<input type=hidden name=personnes_parties value= <?php echo $personnes_parties; ?>>
<input type=submit value="raz" name="raz">
</form>
voila avec un RAZ
<?php
$places=50;
$personnes_parties=0;
$total_personnes=20;
echo "<pre>";
if (isset($_POST)) {
print_r($_POST);
echo "</pre>";
if(isset($_POST['ajout'])) {
$total_personnes=$_POST['total_personnes']+1;
}
if(isset($_POST['personnes_parties']))
{
$personnes_parties=$_POST['personnes_parties'];
}
if(isset($_POST['moins']))
{
$total_personnes=$_POST['total_personnes']-1;
$personnes_parties--;
}
if(isset($_POST['raz'])) {
$personnes_parties=0;
$total_personnes=0;
}
echo "Personnes présentes dans la salle =".$total_personnes."<br>";
echo "Somme totale en euros =".($total_personnes*5)."<br>";
}
?>
<form METHOD=POST>
<input type=submit value="+1" name="ajout">
<input type=hidden name=total_personnes value= <?php echo $total_personnes; ?>>
<input type=submit value="-1" name="moins">
<input type=hidden name=personnes_parties value= <?php echo $personnes_parties; ?>>
<input type=submit value="raz" name="raz">
</form>
C est sur que la sucurité peut importer...
Mais pour un Exo de debutant pourquoi se formaliser...
En plus, la securité il faut etre ouvert a internet et avoir quelqu un dans le collimateur ...
Bref ca en fait des cas, Non ???
Mais pour un Exo de debutant pourquoi se formaliser...
En plus, la securité il faut etre ouvert a internet et avoir quelqu un dans le collimateur ...
Bref ca en fait des cas, Non ???
Non :), suffit de dérouler son programme, et de supposer que l'utilisateur ne fait pas ce qu'on attend de lui !
PS :
personnes_parties : FAUX
total_personnes : FAUX
Personnes présentes dans la salle : peut devenir un nombre négatif si on continue de cliquer sur -1 ...
Somme totale en euros : peut devenir un nombre négatif si on continue de cliquer sur -1 ...
PS :
personnes_parties : FAUX
total_personnes : FAUX
Personnes présentes dans la salle : peut devenir un nombre négatif si on continue de cliquer sur -1 ...
Somme totale en euros : peut devenir un nombre négatif si on continue de cliquer sur -1 ...
je suis entrain de passer l exam...
Si un SI est necessaire pour faire beau ..
Si un SI est necessaire pour faire beau ..
<?php
$places=50;
$personnes_parties=0;
$total_personnes=20;
echo "<pre>";
if (isset($_POST)) {
print_r($_POST);
echo "</pre>";
$total_personnes=$_POST['total_personnes'];
if(isset($_POST['ajout']) and $total_personnes<$places) {
$total_personnes++;
}
if(isset($_POST['personnes_parties']))
{
$personnes_parties=$_POST['personnes_parties'];
}
if(isset($_POST['moins']) and $total_personnes>0)
{
$total_personnes--;
$personnes_parties--;
}
if(isset($_POST['raz'])) {
$personnes_parties=0;
$total_personnes=0;
}
echo "Personnes présentes dans la salle =".$total_personnes."<br>";
echo "Somme totale en euros =".($total_personnes*5)."<br>";
if ($total_personnes==$places) echo "salle pleine<br>";
if ($total_personnes==0) echo "salle vide<br>";
}
?>
<form METHOD=POST>
<input type=submit value="+1" name="ajout">
<input type=hidden name=total_personnes value= <?php echo $total_personnes; ?>>
<input type=submit value="-1" name="moins">
<input type=hidden name=personnes_parties value= <?php echo $personnes_parties; ?>>
<input type=submit value="raz" name="raz">
</form>