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 :

Header non mis à jour


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Header non mis à jour
    Bonjour,je m'excuse d'avance au cas où je me trompe de section, je ne sais pas si je dois poster ici ou en html. Je viens vers vous pour une question très bête... J'ai créé une BDD, reliée à mon site web, j'arrive à me connecter et jusque là tout va bien. Après la connexion, la personne est dirigée vers l'accueil qui peut s'afficher de deux manières différentes, on va dire la sorte 1 si la personne est non connectée, la sorte 2 si elle est connectée. Le problème est qu'une fois la connexion, la sorte 1 est affichée et je suis obligé de refresh une fois mon navigateur pour que l'affichage de la sorte 2 soit présent. Même problème lors de la déconnexion ! Merci d'avance de votre aide, j'ai cherché des moyens de refresh une page tout seul mais ça fait alors charger la page alors que je voudrai que la sorte 2 s'affiche toute seule sans qu'il n'y ai besoin d'un refresh de la page.
    Mon corps de page se met à jour mais pas mon header qui contient une condition si(utilisateur connecté == vrai).

    Header :
    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
     
    <!DOCTYPE html>
    <html>
      <head>
          <title>xxxxxxxxxxxxxxxx</title>
        <meta charset="utf-8" />
        <link rel="stylesheet" type="text/css" href="./styles/styles.css"  />
      <link rel="shortcut icon" type="image/x-icon" href="./images/logoNSC.ico" />
      </head>     
     
        <div id="page" style="text-align: center">
            <header class="site-header" style="display:flex; justify-content:center;">
              <a href="index.php?uc=&amp;action=voirAccueil"><img src="./images/logoNSC.png" id="logoNSC" alt="Lien Accueil" title="Lien Accueil" /></a>
     
              <?php
              if(estConnecte()== TRUE)
              {
                  ?>
                      <p style="position:absolute; right:0;">Bonjour <?php echo $_SESSION['prenom']; ?> <?php echo $_SESSION['nom']; ?>, <br /> <a href="index.php?uc=connexion&amp;action=demanderDeconnexion" title="Cliquez pour vous déconnecter.">Se Déconnecter</a></p>
                  <?php
              }
              ?>
     
     
          </header>
        </div>
     
     
     
     
     
     
     
      <p style="text-align: center;font-weight: bold">xxxxxxxxx</p>
          <hr size="2" color="black" width="80%">

    Merci d'avance

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    IL faudrait nous montrer ton mécanismes de connexion, mais en général, on recharge la page ou on redirige vers une autre page à la fin du script de connexion.
    Si tu veux mettre à jour des choses sans rechargement, il va falloir utiliser de l'AJAX.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Bah la connexion se fait sur une page à apart. La personne rentre les identifiants, appuie sur le bouton pour valider et cela redirige la personne vers une page. Et cette page s'affiche correctement, seul le header ne s'affiche pas correctement (la condition du if est pourtant respectée mais le header utilise les données d'avant connexion donc obligé de refresh pour qu'il prenne les bonne données).

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Gné ? Tu fais une redirection, mais une partie de la page ne tient pas compte des données en session ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Exactement ^^

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je ne vois pas bien comment c'est possible On peut voir le script de connexion et les pages de destination ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Page de redirection
    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
    <?php   if ( estConnecte()==TRUE ) {
            ?> <p>patate</p> <?php  echo $_SESSION['nom']; ?> <br /> <?php  echo $_SESSION['prenom'];
          }
              else
              {
                  ?>
                  <div>
        <p style="font-size: 20px">xxxxxxxxxxxxxxxxxxxxxxxxxxx</p>
        <p>
            xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <br />
        </p>
        <br />
        <div class="btnseco" style="text-align: center; width: 10%;
             margin-left: auto; margin-right: auto; border-radius: 10px">
             <a href="index.php?uc=connexion&amp;action=demanderConnexion" style="display: block; width: 100%; height:100%">
             <br /><font color ="white">Se Connecter<br /><br /></font>
             </a>
            </div>
        <?php
              }
     
     
        ?>
     
     
    </body>


    Connexion
    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
    <div id="contenu">
                    <h2 style="text-align: center;font-weight: bold; font-size: 35px">Identification utilisateur</h2>
                    <form action="index.php?uc=connexion&amp;action=validerConnexion" method="post">
     
                        <div style="background-color: black; text-align: center; width: 20%;
                           margin-left: auto; margin-right: auto; border-radius: 10px ">
                           <br />
                           <?php
                            if ( nbErreurs($tabErreurs) != 0 ) {
                                ?><p class="msgErreur" ><?php echo toHtmlErreurs($tabErreurs)?></p><?php
                            } 
                            ?>
                           <div>
                            <p>
                                <label for="txtNom" accesskey="n"><font color ="white">Identifiant : </font></label>
                                <br />
                                <input type="text" id="txtNom" name="txtNom" maxlength="50" size="15" value="" title="Entrez votre nom de compte utilisateur" />
                            </p>
                            <p>
                                <label for="txtMdp" accesskey="m"><font color ="white">Mot de passe : </label>
                                <br />
                                <input type="password" id="txtMdp" name="txtMdp" maxlength="50" size="15" value=""  title="Entrez votre mot de passe"/>
                            </p>
                        </div>
                        <div>
                            <p>
                                <input class="btnsecoentrer" type="submit" id="ok" value="Se connecter" style="width : 150px; border-radius: 5px" />
                            </p> 
                        </div>
                           <br />
                           </a>
                          </div>      
                    </form>
     
                </div>
    Code Connexion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function connecter($id,$nom,$prenom){
    	$_SESSION['id']= $id;
    	$_SESSION['nom']= $nom;
    	$_SESSION['prenom']= $prenom;
    }

    La connexion se fait ce n'est pas un problème. Le texte du corps qui doit s'afficher seulement s'il y a quelqu'un de connecté fonctionne directement sans refresh.


    En gros dans la page, une fois connecté, on doit voir apparaitre "patate etc" dans le corps et "bonjour nom prénom, se deco" dans le header. Sauf je ne vois pas que le corps de correct mais le header sans le texte et pour faire apparaitre le petit texte je dois refresh.

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Hum... Comment fais-tu la redirection ? par un header location ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Oui, j'ai un fichier index, je te le met.
    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
     
    <?php
    session_start();
    require_once("include/fct.inc.php");
    require_once ("include/class.pdoexetud.inc.php");
    include("vues/v_entete.php") ;
    $tabErreurs = array();
    $pdoExetud = new PdoExetud("localhost", "bdd_nsconseil", "root","");
    $uc = lireDonneeUrl('uc', 'informations');
    switch($uc) {
    	case 'connexion':
    		include("controleurs/c_connexion.php");break;
     
      default :	
    		include("controleurs/c_informations.php");break; 
    }
    include("vues/v_pied.php") ;
    ?>
    Edit : je viens de mettre la partie <div> de mon entête dans l'index carrément, mais le problème du refresh obligatoire est toujours présent.

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ah ! j'ai compris !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    include("vues/v_entete.php") ;
    // [...]
    include("controleurs/c_connexion.php");break;
    Tu charges l'entête avant de faire la connexion. Du coup, au moment où l'entête est chargé, l'utilisateur n'est pas encore connecté.

    Il faudrait donc déplacer l'entête après la connexion proprement dite. Tu pourrais déplacer l'inclusion à l'entête à l'intérieur des vues des éléments.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Sorry je n'ai pas compris ta deuxième phrase (avec l'inclusion etc)

  12. #12
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ben en gros, il faudrait que le include("vues/v_entete.php") ; soit après l'appel à la fonction connecter, donc sans doute à l'intérieur de c_connexion.php
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  13. #13
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Ah oui je vois ! Alors, ça fonctionne mais par gain de facilité pour la suite, j'aimerai continuer à appeler la vue de l’entête au tout début mais dans ce cas après la connexion j'aurai deux fois l’entête ducoup saurai tu faire en sorte de "supprimer" ce qui devait s'afficher (en gros l’entête déjà prévue) ?

  14. #14
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu pourrais éventuellement utiliser des buffers de sortie PHP: Contrôle de l'affichage - Manual
    Tu initialises le buffer avant le 1er include et si tu dois en faire un 2e, tu commences par vider le buffer.

    Dans index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ob_start();
    include("vues/v_entete.php") ;
    $tabErreurs = array();
    $pdoExetud = new PdoExetud("localhost", "bdd_nsconseil", "root","");
    $uc = lireDonneeUrl('uc', 'informations');
    switch($uc) {
    	case 'connexion':
    		include("controleurs/c_connexion.php");break;
     
      default :	
    		include("controleurs/c_informations.php");break; 
    }
    include("vues/v_pied.php") ;
    ob_end_flush();
    Dans c_connexion.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ob_clean();
    include("vues/v_entete.php") ;
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  15. #15
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    C'est ob_clean(); pour vider le buffer ?

  16. #16
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Oui.
    ob_clean — Efface le tampon de sortie
    ob_clean
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  17. #17
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Tout fonctionne parfaitement, merci beaucoup en tout cas !

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

Discussions similaires

  1. Settings non mis à jour lors du debuggage
    Par Fouinard dans le forum Visual Studio
    Réponses: 0
    Dernier message: 27/09/2008, 05h58
  2. [DW CS3] Liens non mis à jour dans un modèle
    Par Aspic dans le forum Dreamweaver
    Réponses: 0
    Dernier message: 18/07/2008, 06h52
  3. [TortoiseSVN] Statut fichier non mis à jour
    Par jeffvac dans le forum Subversion
    Réponses: 6
    Dernier message: 16/04/2008, 11h43
  4. [AJAX] Incompatibilité avec IE (données non mis à jour)
    Par WeDgEMasTeR dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/05/2007, 19h46
  5. parametre non mis à jour
    Par rherrad dans le forum Struts 1
    Réponses: 2
    Dernier message: 11/04/2007, 13h35

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