Navigation pour un utilisateur Authentifié

Résolu/Fermé
mikel25 - 28 nov. 2021 à 09:03
 mikel25 - 28 nov. 2021 à 16:02
Bonjour, j'ai 2 questions en php concernant l'authentification. En fait je veux savoir pour une page d'accueil simple où dans le header il y a les onglets connexion et déconnxion, comment faire pour remplacer ces deux onglets par le nom de l'utilisateur authentifié? Faut-il refaire une nouvelle page d'accueil pour l'utilisateur authentifié?

Pareil pour un formulaire où l'utilisateur n'est pas authentifié, dans ce cas il ajoute son nom. Mais dans le cas d'un utilisateur authentifié, est-il possible de remplacer ce champ nom du formulaire par le nom de l'utilisateur authentifié, ou faut-il un nouveau formulaire?

Auriez-vous une idée pour ces questions? Merci d'avance :)

4 réponses

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
28 nov. 2021 à 09:15
Bonjour,

Pour gérer l'authentification d'un utilisateur tu as dû utiliser les variables de session...
Dans ces variables, tu auras stocké le nom de ton utilisateur...
Et donc.. il te suffit d'utiliser un IF/ELSE en php pour afficher/masquer ce que tu souhaites...
Le tout.. dans un seul fichier bien entendu..
0
Bonjour, merci pour ta réponse. Ton idée est claire, cependant en suivant tes insctructions ça ne m'affiche pas le nom de l'utilisateur, mais la connexion et l'inscription ont été bien masquées. Que faut-il faire? Voici le code:

Les variables de la page connexion:

<?php
session_start();

$bdd= new PDO( //connexion...);

if(isset($_POST['form'])) {
$phoneconnexion = intval($_POST['phoneconnexion']);
$mdpconnexion = sha1($_POST['mdpconnexion']); 

    $requser = $bdd->prepare("SELECT * FROM utilisateurs WHERE telephone = ? AND motdepasse = ?");
    $requser->execute(array($phoneconnexion $mdpconnexion));

    $userexist = $requser->rowCount();
      if($userexist == 1) {
         $userinfo = $requser->fetch();
         $_SESSION['id'] = $userinfo['id'];
         $_SESSION['phone'] = $userinfo['phone'];
         $_SESSION['nom'] = $userinfo['nom'];
         header("Location: profil.php?id=".$_SESSION['id']);
        } else {

            echo("....");
         }
      } 
?>


et ensuite la page d'accueil:

<?php
<?php 
if(isset($_SESSION['id'])){ ?>

<div class= "boutons">
<button class="favorite styled" onclick="window.location.href = '';"
        type="button">
    <?php echo "page2.php";?>
</button>


<button class="favorite styled" onclick="window.location.href = 'connexion.php';"
        type="button">
        <?php echo $_SESSION['nom'];?>
</button>

<button class="favorite styled" onclick="window.location.href = 'deconnexion.php';"
        type="button">
        <?php echo "Déconnexion";?>
</button>


?>
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
28 nov. 2021 à 14:51
As tu bien un session_start également sur ta page d'accueil ?
Peux tu faire un
var_dump($_SESSION); 

au début de ta page d'accueil et nous montrer ce que ça retourne ?

Attention : tu as ouvert deux fois la balise php ligne 1 et 2...


PS: je ne vois pas la fin de ton if ...
faudrait bien nous montrer le code COMPLET...
0
Oui, j'ai bien mis session_start au début

Le résultat du vardump.
'id' => string '15' (length=2)
'phone' => null
'mail' => string '***@***' (length=16)
'nom' => null

Voici le code entier du if et else:

<?php 
if(isset($_SESSION['id'])){ ?>
<?php var_dump($_SESSION);  ?>


<div class= "boutons">
<button class="favorite styled" onclick="window.location.href = '';"
        type="button">
    page1
</button>


<button class="favorite styled" onclick="window.location.href = 'connexion.php';"
        type="button">
        <?php echo $_SESSION['nom'];?>
</button>

<button class="favorite styled" onclick="window.location.href = 'deconnexion.php';"
        type="button">
        <?php echo "Déconnexion";?>
</button>

</div>
   
<?php } 


else {?>
  <div class= "boutons">
<button class="favorite styled" onclick="window.location.href = '"
        type="button">
    page1
</button>


<button class="favorite styled" onclick="window.location.href = 'connexion.php';"
        type="button">
       connexion
</button>

<button class="favorite styled" onclick="window.location.href = 'register.php';"
        type="button">
        inscription
</button>

</div>


<?php } ?>



0
En fait depuis que j'ai suivi tes instructions ça marchait, et je viens de m'en rendre compte en me reconnectant. Je pense que c'était le navigateur
Problème résolu. Merci à toi et bon dimanche :)
0