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
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    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 confirmé
    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
    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
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    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
    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 ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    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
    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.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  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
    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 ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    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
    Par défaut
    Non je viens de comprendre ce que tu faisais
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ 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