retour à index.php si non connécté
- Accueil
- Forum
- Programmation
- PHP
- retour à index.php si non connécté
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 Le 20 décembre 2016 à 15:24 (Édité le 1 janvier 1970 à 01:00)
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 Le 20 décembre 2016 à 15:46 (Édité le 1 janvier 1970 à 01:00)
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 Le 20 décembre 2016 à 16:07 (Édité le 1 janvier 1970 à 01:00)
Codeur61 Le 20 décembre 2016 à 16:40 (Édité le 1 janvier 1970 à 01:00)
<?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 Le 20 décembre 2016 à 17:55 (Édité le 20 décembre 2016 à 17:57)
header('Location: index.php');
sauf si tu veux attendre 6secondes avant la redirection, comme l'a dit @TheOldNoob Codeur61 Le 20 décembre 2016 à 18:38 (Édité le 1 janvier 1970 à 01:00)
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 Le 20 décembre 2016 à 19:10 (Édité le 20 décembre 2016 à 19:11)
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 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 Le 20 décembre 2016 à 19:19 (Édité le 20 décembre 2016 à 19:20)
TheOldNoob Le 20 décembre 2016 à 19:23 (Édité le 1 janvier 1970 à 01:00)
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 Le 20 décembre 2016 à 19:28 (Édité le 1 janvier 1970 à 01:00)
TheOldNoob Le 20 décembre 2016 à 19:31 (Édité le 1 janvier 1970 à 01:00)
Codeur61 Le 20 décembre 2016 à 20:13 (Édité le 1 janvier 1970 à 01:00)
TheOldNoob Le 20 décembre 2016 à 20:16 (Édité le 20 décembre 2016 à 20:17)
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 Le 20 décembre 2016 à 21:08 (Édité le 1 janvier 1970 à 01:00)
<?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 Le 20 décembre 2016 à 23:45 (Édité le 20 décembre 2016 à 23:46)
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 }