[PHP] Masquer et afficher du code

Résolu
MrLeBeignet -  
 MrLeBeignet -
Bonjour,

Je voudrais savoir comment afficher un "bouton" lors de la connexion d'un utilisateur. Ce serait le bouton 'Profil' et aussi masquer le bouton 'Connexion'. Si vous ne comprenez pas quoi que ce soit merci de me le faire savoir.

3 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour

    Déjà. .. tout dépend comment tu as codé ta partie authentification....

    mais. .. en général. .. un simple IF suffit.

    1
  2. MrLeBeignet
     
    Voilà le code de mon module de connexion:
    <?php
    session_start();
    
    $bdd = new PDO('mysql:host=mysql.hostinger.fr;dbname=u125151775_espam', 'u125151775_user1', 'cendrillon35');
    
    include_once('cookie_connect.php');
    
    if(isset($_POST['formconnect']))
    {
     $mailconnect = htmlspecialchars($_POST['mailconnect']);
     $mdpconnect = sha1($_POST['mdpconnect']);
     if(!empty($mailconnect) AND !empty($mdpconnect))
     {
      $requser = $bdd->prepare("SELECT * FROM membres WHERE mail = ? AND motdepasse = ?");
      $requser->execute(array($mailconnect, $mdpconnect));
      $userexist = $requser->rowCount();
      if($userexist == 1)
      {
       if(isset($_POST['rememberme'])) {
        setcookie('email',$mailconnect,time()+950400,null,null,false,true);
        setcookie('password',$mdpconnect,time()+950400,null,null,false,true);
       }
       $userinfo = $requser->fetch();
       $_SESSION['id'] = $userinfo['id'];
       $_SESSION['pseudo'] = $userinfo['pseudo'];
       $_SESSION['mail'] = $userinfo['mail'];
       header("Location: profil.php?id=".$_SESSION['id']);
      }
      else
      {
       $erreur = "Mauvais mail ou mauvais mot de passe !";
      }
     }
     else
     {
      $erreur = "Tous les champs doivent être remplis !";
     }
    }
    ?>
    

    <h2>Connexion</h2>
        <br /><br /><br />
        <form method="POST" action="">
         <label>Mail: </label>
         <input type="email" name="mailconnect" placeholder="Mail" />
         <labem>Mot de passe: </labem>
         <input type="password" name="mdpconnect" placeholder="Mot de passe" />
         <br /><br/>
         <input type="checkbox" name="rememberme" id="remembercheckbox" /><label for="remembercheckbox">Se souvenir de moi pendant 11 jours</label>
         <br /><br />
         <input type="submit" name="formconnect" value="Connexion" />
        </form>
        <p>Après vous être connecté, vous serez immédiatement <br /> redirigé vers la page de 
         votre profil et vous pourrez l'éditer.
        </p>
    


    EDIT : Ajout des balises de code (la coloration syntaxique).
    Explications disponibles ici :ICI

    Merci d'y penser dans tes prochains messages.
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Et je suppose que le "bouton" dont tu parles dans ta question..... il est à afficher dans ta page :profil.php
      ???

      Et..... quel est le code de cette page ?

      Sachant que pour gérer ce fameux bouton... comme je te l'ai dit dans ma première réponse.. un simple IF suffirait ...
      Par exemple
      session_start();
      
      $userId = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
      
      if($userId) {
       echo "<button> Profil </buton>";
      
      }else{
        echo "<button> Connexion </buton>";
      }
      
      
      0
  3. MrLeBeignet
     
    Je voudrais que sur toutes les pages du site, le bouton Profil s'affiche quand un utilisateur est connecté et que le bouton Connexion se masque.

    Profil.php
    <?php
    session_start();
    
    include_once('cookie_connect.php');
    
    $bdd = new PDO('mysql:host=******************;dbname='********', '*******', '************');
    if(isset($_GET['id']) AND $_GET['id'] > 0)
    {
     $getid = intval($_GET['id']);
     $requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
     $requser->execute(array($getid));
     $userinfo = $requser->fetch();
    
    ?>
    <html>
     <head>
      <title>Profil de <?php echo $userinfo['pseudo']; ?> | BeignetSauvage</title>
      <link rel="stylesheet" type="text/css" href="style.css" />
      <meta charset="utf-8" />
      <link rel="icon" type="image/ico" href="favicon.ico" />
      <script type= "text/javascript " src= "http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js "></script>
      <script type= "text/javascript " src= "js/jsnow.js "></script>
    
      <script type= "text/javascript "> $(function() { $().jSnow(); }); </script>
     </head>
     <body background="fond_site.png">
      <div id="banner1">
       <p><font face="I AM SHERLOCKED">***********</font></p>
      </div>
      <div id="menu">
       <ul>
        <li><a href="index.html">ACCUEIL</a></li>
        <li><a href="chat.php">CHAT</a></li>
        <li><a href="videos.html">VIDÉOS</a></li>
        <li><a href="news.html">NEWS</a></li>
        <li><a href="contact.html">CONTACT</a></li>
      </div>
      <div id="banner2"align="center"><br />
       <input type="button" name="lieninscription" value="Inscription" onclick="self.location.href='inscription.php'" style="background-color:#7FFFBB" style="color:white; font-weight:bold"onclick>
       <input type="button" name="lienconnexion" value="Connexion" onclick="self.location.href='connexion.php'" style="background-color:#7FFFBB" style="color:white; font-weight:bold"onclick> 
      </div>
    
      <div id="contenuprincipal">
       <div align="center">
        <table>
         <tr>
          <td>
           <h2>Profil de <?php echo $userinfo['pseudo']; ?></h2>
           <br />
           <?php
           if(!empty($userinfo['avatar']))
           {
           ?>
           <img src="Membres/Avatars/<?php echo $userinfo['avatar']; ?>" width="160" />
           <?php
           }
           ?>
           <br /><br />
           Pseudo = <?php echo $userinfo['pseudo']; ?>
           <br />
           Mail = <?php echo $userinfo['mail']; ?> 
           <br />
           Statut = <?php echo $userinfo['statut']; ?>
           <br />
           <?php
           if(isset($_SESSION['id']) AND $userinfo['id'] == $_SESSION['id'])
           {
           ?>
           <a href="edition_profil.php">Editer mon profil</a><br />
           <a href="envoi.php">Envoyer un message privé a quelqu'un</a><br />
           <a href="reception.php">Boîte de réception</a><br />
           <a href="deconnexion.php">Se déconnecter</a>
           <?php
           }
           ?>
          </td>
         </tr>
        </table>
       </div>
      </div>
      <div id="footer">
       <p>**************** © 2015 | Tous droits réservés</p>
     </body>
    </html>
    <?php
    }
    ?>
    


    Désolé pour la coloration syntaxique comme il y avait du html c'était galère...
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       

      Je voudrais que sur toutes les pages du site, le bouton Profil s'affiche quand un utilisateur est connecté et que le bouton Connexion se masque

      Oui et ?
      La réponse que je t'ai donné ne te suffit pas ??? Oo
      0
      1. MrLeBeignet > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Effectivement j'ai mal interprété le message ^^' mais maintenant j'ai un problème avec mon bouton...
        <?php
        	
        					$userId = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
        	
        					if($userId) {
        					 echo "<input type='button' name='lienprofil' value='Mon profil' onclick='self.location.href='profil.php?id=<?= $_SESSION['id'] ?>'' style='background-color:#7FFFBB' style='color:white; font-weight:bold'onclick>";
        	
        					}else{
        					  echo "";
        				}
        				
        			?>
        

        Je pense que le problème viens de
        onclick='self.location.href='profil.php?id=<?= $_SESSION['id'] ?>''

        à cause des apostrophe..
        0
      2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > MrLeBeignet
         

        à cause des apostrophe..

        Ben.... dans ce cas tu mets des guillemets...
         echo "<input type='button' name='lienprofil' value='Mon profil' onclick='self.location.href=\"profil.php?id=". $_SESSION['id']."\" ' style='background-color:#7FFFBB' style='color:white; font-weight:bold'onclick>";
        
        
        0
      3. MrLeBeignet > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Merci beaucoup je suis vraiment débile.... J'ai même pas penser aux slash (>.<') ! En tout cas maintenant tout marche très bien merci ! Désolé de t'avoir dérangé pour un problème aussi simplet ^^ !
        0