[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.

A voir également:

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
Bonjour

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

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


1
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 

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
MrLeBeignet > jordane45 Messages postés 38486 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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > 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
MrLeBeignet > jordane45 Messages postés 38486 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