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

Langage PHP Discussion :

Boucle while infini avec SESSION


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    Points : 37
    Points
    37
    Par défaut Boucle while infini avec SESSION
    Salut alors j'ai un soucis, je ne comprend absolument pas pourquoi ma boucle while, boucle a l'infini. SI quelqu'un peut m'éclaircir ^^

    Merci

    (but du programme calcule la somme des N premiers nombres entiers positifs)
    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
     
    <?php
    session_start();
     
        if(!isset($_SESSION['somme']))
            $_SESSION['somme'] = "";
     
        if(isset($_GET['raz']))
        {
            session_destroy();
            echo 'Nombre réinitialiser';
            header('location: index.php');
        }
     
        if(isset($_POST['proposition']))
        {
            if(ctype_digit($_POST['proposition']))
                {
                echo "Cette variable est un entier et ne contient que des chiffres";
                $_SESSION['somme'] = 0;
                $_SESSION['i'] = 1;
                    while($_SESSION['i'] <= $_POST['proposition'])
                    {
                        $_SESSION['somme'] = $_SESSION['somme'] + $_SESSION['i'];
                        $_SESSION['i'] = $_SESSION['i']++;
                    }
                }
            else
            {
                echo "Cette variable n'est pas un entier, veuillez rentrer un nouveau chiffre";
            }
     
        }
    ?>
     
    <form method="post">
            <input type="number" name="proposition" placeholder="Entrez la valeur de N" REQUIRED><br/>
            <input type="submit" value="Valider"/>
            <input type="reset" value="Annuler"/>
        </form>
     
        <?php
        echo " La somme de votre nombre est: " .$_SESSION['somme']."<br>";
        ?>
        <br/>
        <a href="?raz=1">Reset game</a>

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    l'opérateur ++ est à la fois un opérateur de post ou pré incrémentation et d'affectation.
    Post-incrémentation quand il suit la variable à incrémenter et pré-incrémentation quand il la précède.
    Donc $_SESSION['i'] = $_SESSION['i']++; n'a aucun sens.
    Tu devrais le remplacer par simplement ++$_SESSION['i']; ou carrément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $_SESSION['i'] = 0;
    while (++$_SESSION['i'] <= $_POST['proposition']) {
        $_SESSION['somme'] = $_SESSION['somme'] + $_SESSION['i'];
    }

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Merci beaucoup ! J'avais pas pensé à ça ^^
    Bonne soirée a toi

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Un incrémentation c'est simplement comme ça
    Tel que tu le fais tu réaffectes la valeur que la variable a déjà.

    Mais à quoi sert cette boucle ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Un incrémentation c'est simplement comme ça
    Tel que tu le fais tu réaffectes la valeur que la variable a déjà.

    Mais à quoi sert cette boucle ?
    La boucle me permet de calculer la somme du nombre rentrer en gros avec 5---> 15 ^^

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    D'ailleurs c'est amusant comme résultat, ça laisse supposer que PHP retourne la valeur actuel, fait l'incrémentation puis affecte la valeur de l'étape précédente.

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La boucle me permet de calculer la somme du nombre rentrer en gros avec 5---> 15 ^^
    Et pourquoi tu ne fais pas une addition normale ?

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Et pourquoi tu ne fais pas une addition normale ?
    Comment sa ?

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Non je viens de comprendre ce que tu faisais

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

Discussions similaires

  1. Problème boucle WHILE/WEnd avec plusieurs conditions
    Par Romanaxx dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/12/2013, 15h00
  2. boucle while infini!
    Par guizaniseifislam dans le forum Langage
    Réponses: 2
    Dernier message: 02/03/2012, 01h30
  3. erreur 91 sur boucle WHILE WEND avec recordset
    Par forzaxelah dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/02/2012, 21h54
  4. Boucle à l'infini avec While et un Reader
    Par mrocks dans le forum Windows Forms
    Réponses: 5
    Dernier message: 16/06/2009, 16h13
  5. Boucle while infinie
    Par god_enel dans le forum C
    Réponses: 1
    Dernier message: 16/04/2007, 11h35

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