retour à index.php si non connécté

Codeur61

Codeur61 Le 20 décembre 2016 à 10:43 (Édité le 25 janvier 2019 à 17:52)

<?php   session_start();
  
 //Si le membre est connecté on affiche le menu-connection  
 if(isset($_SESSION['id'])){ ?>      
<li id="co"><a href="<?php echo 'profil.php?id='.$_SESSION["id"]; ?>">Profil</a>
</li><li id="co"><a href="deconnexion.php">Deconnexion</a> </li>   <?php }   
   //Si le membre n'est pas connecté on affiche le menu-deconnecter   
if(empty($_SESSION['id'])) { ?>     
<li id="log"> <a href="connexion.php">Se connecter</a></li> <li>
<a href="inscription.php"> Inscription</a></li>   <?php } ?>


Salut, je voudrais que l'utilisateur soit rediriger vers mon index.php plutôt que de lui mettre son statut s'il est déconnecté. Merci d'avance !
TheOldNoob

TheOldNoob Le 20 décembre 2016 à 15:24

Salut l'ami,

Première chose c'est revoir l'indentation.
Ensuite, il manque une balise <ul></ul> pour englobé tes balise <li> sinon ça ne sera jamais une liste.

Pour finir, ton problème doit pouvoir se résoudre avec un header('Location : index.php');
Voir un header('Refresh: 6;url=http://google.fr"); (6 étant le nombre de seconde avant l'envoie vers le lien que tu aura défini)
Codeur61

Codeur61 Le 20 décembre 2016 à 15:46

Salut, 


Si j'ai bien compris faut que je mette mon <ul> au début du code et mon </ul> à la fin du code ?.... ou à un endroit précis ? 
Sa fait un truc comme ça en gros 

<?php   session_start();  
 //Si le membre est connecté on affiche le menu-connection   if(isset($_SESSION['id'])){ ?>      <li id="co"><a href="<?php echo 'profil.php?id='.$_SESSION["id"]; ?>">Profil</a></li><li id="co"><a href="deconnexion.php">Deconnexion</a> </li>   <?php }      //Si le membre n'est pas connecté on affiche le menu-deconnecter   if(empty($_SESSION['id'])) { ?>     <li id="log"><?php 
header('Refresh: 6;url=http://google.fr");
?> 

il faut donc que je laisse mon <li id="log"> ? pour voir c'est quel id    ?  non  ? ou alors ça sert à rien ? 
Balatharas

Balatharas Le 20 décembre 2016 à 16:07

J'ai pas tout lu, mais il suffit d'une condition: si il n'y a pas de id alors on redirige...
Codeur61

Codeur61 Le 20 décembre 2016 à 16:40

<?php  
 session_start();  
 //Si le membre est connecté on affiche le menu-connection   if(isset($_SESSION['id'])){ ?>  
    <li id="co"><a href="<?php echo 'profil.php?id='.$_SESSION["id"]; ?>">Profil</a></li><li id="co">
<a href="deconnexion.php">Deconnexion</a> </li>   <?php }     
 //Si le membre n'est pas connecté on affiche le menu-deconnecter 
  if(empty($_SESSION['id'])) { ?>   
<?php 
 header('Refresh: 6;url=http://google.fr");
?>







Un peu comme ça ?


Balatharas

Balatharas Le 20 décembre 2016 à 17:55 (Édité le 20 décembre 2016 à 17:57)

Oui ça m'a l'air correct, tu peux également mettre !isset au lieu de empty et pour ta redirection, tu devrais plutôt mettre
header('Location: index.php');
sauf si tu veux attendre 6secondes avant la redirection, comme l'a dit @TheOldNoob
Codeur61

Codeur61 Le 20 décembre 2016 à 18:38

Salut, 
J'ai testé et ça marche pas regardez mon code : 
<?php  
 session_start();  
 //Si le membre est connecté on affiche le menu-connection   if(isset($_SESSION['id'])){ ?>  
    <li id="co"><a href="<?php echo 'profil.php?id='.$_SESSION["id"]; ?>">Profil</a></li><li id="co">
<a href="deconnexion.php">Deconnexion</a> </li>   <?php    
 //Si le membre n'est pas connecté on affiche le menu-deconnecter 
  if(isset($_SESSION['id']))  ?>   
<?php 
header('Location: index.php');
?> 

Merci d'avance !
TheOldNoob

TheOldNoob Le 20 décembre 2016 à 19:10 (Édité le 20 décembre 2016 à 19:11)

Bon, je le dit pas souvent, mais ton code est dégueulasse... 

Pourquoi fermer ton php sur la liste 7 et le réouvrir a la ligne 8?
Pour ton problème, je pense qu'il y a un gros soucis avec les ouvertures et fermetures de { }
Et tant que tu codera pas proprement, avec une indentation correcte, tu aura toujours un problème de lisibilité et donc tu n'arrivera pas a faire fonctionner ton code.

Je corrige pas ton erreur, mais je refait ton indentation afin que tu puisse trouver seul ton erreur.
<?php   
session_start();  

 //Si le membre est connecté on affiche le menu-connection   
   if(isset($_SESSION['id'])){ ?>      
      <ul>
         <li id="co"><a href="<?php echo 'profil.php?id='.$_SESSION["id"]; ?>">Profil</a></li>
         <li id="co"><a href="deconnexion.php">Deconnexion</a></li>      
<?php 
   if(isset($_SESSION['id']))  
      php header('Location: index.php');?> 
Flex

Flex Le 20 décembre 2016 à 19:12 (Édité le 20 décembre 2016 à 19:26)

<?php  
session_start();  
//Si le membre est connecté on affiche le menu-connection   
if(isset($_SESSION['id'])): ?>  
<ul>
<li id="co"><a href="profil.php?id=<?= $_SESSION['id']; ?>">Profil</a></li>
<li id="co"><a href="deconnexion.php">Deconnexion</a></li>
</ul>
<!-- et si ce n'est pas le cas on le redérige vers l'index -->
<?php else: ?>
<?php header('Location: index.php'); ?> 
<?php endif; ?>

Codeur61

Codeur61 Le 20 décembre 2016 à 19:19 (Édité le 20 décembre 2016 à 19:20)

ça me met que j'ai une erreur à la ligne 12 sur mon header ? bizarre  (TheOld)
TheOldNoob

TheOldNoob Le 20 décembre 2016 à 19:23

C'est presque ça Flex, il manque l'indentation 😉
Et il manque un endif 😀
Par contre, je conseil vraiment l'utilisation des {} avant de jouer avec les : et endif qui sont plus compliquer a lire/repérer pour un novice.
Flex

Flex Le 20 décembre 2016 à 19:28

@TheOldNoob effectivement j'ai édité le code 😉 
TheOldNoob

TheOldNoob Le 20 décembre 2016 à 19:31

L'édition ne fonctionne pas sur se site, j'ai essayé d'éditer mon code plus haut car j'ai oublier le </ul> mais impossible :(
Codeur61

Codeur61 Le 20 décembre 2016 à 20:13

@TheOldNoob sur ton code je trouve pas l'erreur à la ligne 12 j'ai pourtant tout essayé, et @Flex ton code marche mais j'arrive pas à ajouter une redirection vers le profil. Et j'avoue que je suis un novice et que j'ai pas tout compris a ton code @Flex.
TheOldNoob

TheOldNoob Le 20 décembre 2016 à 20:16 (Édité le 20 décembre 2016 à 20:17)

Mon code est faux Codeur61, je t'es dit que tu devais corriger les erreurs d'ouverture et fermeture de {}
Je t'es montré comment indenté correctement ton code pour y voir plus claire et trouver tout seul ton erreur. 

Si je corrige ton code et que je le fait fonctionnel, tu n'apprendra pas... Et je serais obliger de te facturé 😀

Pour t'aider un peu plus, tu doit avoir 2 x { et 2 x } placer correctement dans ton code.
Codeur61

Codeur61 Le 20 décembre 2016 à 21:08

<?php } 
session_start();  
 //Si le membre est connecté on affiche le menu-connection   
   if(isset($_SESSION['id'])){ ?>      
      <ul>
         <li id="co"><a href="<?php echo 'profil.php?id='.$_SESSION["id"]; ?>">Profil</a></li>
         <li id="co"><a href="deconnexion.php">Deconnexion</a></li>      
<?php }
   if(isset($_SESSION['id']))  
      php header('Location: index.php'); 
{ ?> 

J'ai trouver ?! c'est ça ? 
TheOldNoob

TheOldNoob Le 20 décembre 2016 à 23:45 (Édité le 20 décembre 2016 à 23:46)

il manque une ouverture {

Et il faut fermé le </ul> après tes <li>

Mais ton code n'est pas bon de toute façon. Tes deux condition de if sont identique, mais envois deux ordre différent. Il va prendre bêtement le second et n'aura jamais ta liste apparente.

Tu doit faire un if et un else tout deux ouvert avec un { et fermé avec un }
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte