[PHP] Masquer et afficher du code

Résolu/Fermé
MrLeBeignet - 22 déc. 2015 à 19:33
 MrLeBeignet - 23 déc. 2015 à 23:39
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 38161 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2024 4 657
22 déc. 2015 à 19:40
Bonjour

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

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


1
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 38161 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2024 4 657
23 déc. 2015 à 00:18
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
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 38161 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2024 4 657
23 déc. 2015 à 20:29

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 38161 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2024
23 déc. 2015 à 23:14
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 38161 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2024 4 657 > MrLeBeignet
Modifié par jordane45 le 23/12/2015 à 23:31

à 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 38161 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2024
23 déc. 2015 à 23:39
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