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 :

$_SESSION s'incrémente d'un pas de géant


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de jamdinhe
    Inscrit en
    Avril 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 165
    Points : 83
    Points
    83
    Par défaut $_SESSION s'incrémente d'un pas de géant
    Bonjour,
    J'ai mis au début de ma page PHP un bout de code pour incrémenter une variable de session comme ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    session_start();
    if(isset($_SESSION['inc'])):
        $i  = $_SESSION['inc'];
        $j  = $i+1;
        $_SESSION['inc']   = $j;
        var_dump($i);
        var_dump($j);
    else:
        $_SESSION['inc']   = 1;
    endif;
    var_dump($_SESSION['inc']);
    Le var_dump est utilisé pour afficher le contenu de ma variable de session surtout,
    et justement, c'est ce var_dump qui me dévoile une incrémentation de 3 au lieu de 1.

    ce que je ne comprends pas, c'est que dans certaines pages l'incrémentation se fait par 1 position alors que dans d'autres (là ou on a plus d'image et de contenu à afficher) il s'incrémente de 3 !

    Pourriez vous m'éclairer sur ce problème.
    Merci à tout ceux qui veulent aider
    amine
    Plusieurs processeurs pour une machine;
    Plusieurs Machines pour un calcul;
    Plusieurs calculs pour un résultat;
    Plusieurs Résultats pour un diagnostique;
    Plusieurs Diagnostiques pour une décision.

    ...........................................................

    la Décision est un acte de Management,
    le Management est un Acte d'informatique

  2. #2
    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
    Pourquoi tu ce bazar avec $i et $j ?

    En une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['inc'] = isset($_SESSION['inc']) ? ++$_SESSION['inc'] : 1;
    Pour le problème de variable qui "saute", cela semble indiquer que ta page est chargée plusieurs fois.
    Cela pourrait être un problème de redirections, de CSS mal déclarée, ou ta page qui s'appelle elle même (par exemple si tes images sont appellées par index.php?image=toto.jpg)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier Avatar de jamdinhe
    Inscrit en
    Avril 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 165
    Points : 83
    Points
    83
    Par défaut
    Merci sabotage pour ta réponse.

    Concernant les $i et $j, je les ai rajouté à la fin, car j'ai commencé par utiliser la condition linéaire comme tu me le propose, mais à cause du problème de l'incrémentation, j'étais obligé de faire appel aux bases algorithmiques afin d'enlever tout soupçons de ce coté.

    Pour la redirection, j'ai vérifier tout le code, rien ne provoque la redirection,
    par contre, je constate dans firefox une page blanche affichant les var_dump() incrémentés à 2 et ensuite la page au design apparait avec les var_dump() des sessions incrémentés à 3 !

    pour l'affichage, j'utilise le moteur de templates TWIG,
    pour les chemins en HTML (CSS, js, img, ...) j'utilise le chemin physique depuis la racine du site web (/template/css/style.css)

    Merci encore sabotage,
    ne vois-tu pas d'autres sources de problèmes possibles ?
    merci à tout ceux qui veulent aider
    amine
    Plusieurs processeurs pour une machine;
    Plusieurs Machines pour un calcul;
    Plusieurs calculs pour un résultat;
    Plusieurs Résultats pour un diagnostique;
    Plusieurs Diagnostiques pour une décision.

    ...........................................................

    la Décision est un acte de Management,
    le Management est un Acte d'informatique

  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
    Tu veux dire que tu vois 1 2 .... 3 ou 1 2 et puis une page avec 3 tout seul ?
    Dans ton navigateur, tu peux regarder les appels réseau engendrés par la page.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier Avatar de jamdinhe
    Inscrit en
    Avril 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 165
    Points : 83
    Points
    83
    Par défaut
    j'ai visionné les appels réseau du navigateur, il y'a quelques images qui sont en 404, c'est à dire introuvable, le reste est à 200

    pour les numéro,
    mon algo affiche dans l'ordre la valeur avant l'incrémentation et la valeur après l'incrémentation.
    exp : supposant (val 1 : Valeur initiale, Val 2 : Valeur après incrémentation)
    Val 1 = 5
    Val 2 = 6

    si j'actualise la page je devrais avoir :
    Val 1 = 6
    Val 2 = 7

    pour mon cas, c'est :
    Val 1 = 5
    Val 2 = 6

    si j'actualise, j'ai les valeurs en deux fois (une fois sans design, ensuite une deuxième fois avec design):
    Val 1 = 7
    Val 2 = 8

    Val 1 = 8
    Val 2 = 9

    si tu remarque, même avant d'afficher le design, il incrémente de 2 !
    Plusieurs processeurs pour une machine;
    Plusieurs Machines pour un calcul;
    Plusieurs calculs pour un résultat;
    Plusieurs Résultats pour un diagnostique;
    Plusieurs Diagnostiques pour une décision.

    ...........................................................

    la Décision est un acte de Management,
    le Management est un Acte d'informatique

  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
    Il y a quelque part ou on peut voir le resultat ?

    Pour debuguer, tu pourrai aussi loguer des informations comme heure, url et valeur de la session au moment ou tu fais ton incrementation.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre régulier Avatar de jamdinhe
    Inscrit en
    Avril 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 165
    Points : 83
    Points
    83
    Par défaut
    Je l'ai en ce moment en local, donc pour voir il faudra que je le mette en ligne;

    sinon pour L’URL, j'ai justement afficher un $_SERVER['REQUEST_URI'] de la page appelante, j'ai eu une surprise !!

    j'ai eu le chemin d'une image !

    est ce que ça signifie que les images sont appelé en régénérant la page ?
    Plusieurs processeurs pour une machine;
    Plusieurs Machines pour un calcul;
    Plusieurs calculs pour un résultat;
    Plusieurs Résultats pour un diagnostique;
    Plusieurs Diagnostiques pour une décision.

    ...........................................................

    la Décision est un acte de Management,
    le Management est un Acte d'informatique

  8. #8
    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
    Il n'y a rien d'étrange dans cette url ?
    Sinon il faudrait voir avec les habitués de twig.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre régulier Avatar de jamdinhe
    Inscrit en
    Avril 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 165
    Points : 83
    Points
    83
    Par défaut
    Pour la piste TWIG, je l'ai écarté, car j'ai testé le template sans TWIG, mais directement en affichant les $_SESSION d'incrémentation, et j'ai eu le même bug !

    pour l'URL, je ne comprends pas comment qu'un $_SERVER['REQUEST_URI'] retourne le chemin d'une image !!

    en plus pour que $_SERVER['REQUEST_URI'] soit appelé, il faut que la page se recharge depuis le serveur, qui a demandé à la page de recharger vers le chemin d'une image en plus !

    qu'en penses-tu ?


    là, j'ai verifié tout les chemins des images dans les CSS, je suis arrivé à tout mettre au point, le compteur est tout marche très bien dans firefox,
    ce qui n'est pas le cas de Chrome ! dans l'inspecteur d'éléments>Network, il cherche à charger un /favicon.ico, alors que dans mon code source, y'en a aucun appel à ce fichier qui lui encore n'existe pas !


    ça rend fou ces navigateurs !
    Plusieurs processeurs pour une machine;
    Plusieurs Machines pour un calcul;
    Plusieurs calculs pour un résultat;
    Plusieurs Résultats pour un diagnostique;
    Plusieurs Diagnostiques pour une décision.

    ...........................................................

    la Décision est un acte de Management,
    le Management est un Acte d'informatique

  10. #10
    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
    Tous les navigateurs cherchent un fichier favico sur le serveur, c'est pour l'icone du site.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre régulier Avatar de jamdinhe
    Inscrit en
    Avril 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 165
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tous les navigateurs cherchent un fichier favico sur le serveur, c'est pour l'icone du site.
    Ah OK

    Sinon, pour le compteur, le problème est résolue du coté de Firefox mais pas chrome, ce qui me démotive dans ma recherche de solution.

    Que me conseillerais-tu de faire pour garder l'historique des URL réelles parcourus ?
    Plusieurs processeurs pour une machine;
    Plusieurs Machines pour un calcul;
    Plusieurs calculs pour un résultat;
    Plusieurs Résultats pour un diagnostique;
    Plusieurs Diagnostiques pour une décision.

    ...........................................................

    la Décision est un acte de Management,
    le Management est un Acte d'informatique

Discussions similaires

  1. Fonction incrémentation ne marche pas
    Par clickandgo dans le forum VBA Access
    Réponses: 9
    Dernier message: 12/05/2012, 20h30
  2. Réponses: 16
    Dernier message: 28/08/2009, 22h03
  3. Ma variable $_SESSION ne s'incrémente pas
    Par lemirandais dans le forum Langage
    Réponses: 1
    Dernier message: 26/07/2009, 12h14
  4. Réponses: 3
    Dernier message: 02/12/2006, 16h10
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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