Problème variable de session

flops21 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour
Je débute en php est j'ai un petit problème
dans le menu de mon site je voudrais (voir ci-dessous)

<li><a href="velo.php">Velo</a></li>
<li><a href="course à pied.php">Course à pied</a></li>

je voudrais y rajouté une variable de session pour que l'utilisateur y accède QUE si il est connecté
j'ai essayé ceci


<li><a href= <?php header("location: Velo.php?id=".$_SESSION['id']);?>>Velo</a></li>
<li><a href= <?php header("location: course à pied.php?id=".$_SESSION['id']);?>>course à pied</a></li>

Mais ça me dit

Cette page ne fonctionne paslocalhost vous a redirigé à de trop nombreuses reprises.
Essayez de supprimer les cookies..
ERR_TOO_MANY_REDIRECTS

Pourriez-vous m'aidé s'il vous plaît .

4 réponses

popozz Messages postés 220 Date d'inscription   Statut Membre Dernière intervention   177
 
Bonjour,

Alors pour commencer, je ne sais pas trop si ça se fait de mettre des espace des accents dans un lien, mais bon, peut-être.

Sinon c'est la première fois que je vois ça. Une redirection en PHP dans un lien. En sois, un lien est une redirection donc ça ne va pas. Ensuite il ne sert à rien de passer une variable session dans un lien puisqu'il suffirait de récupérer cette variable session depuis l'autre page.

Renseigne toi sur la fonction isset.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
Bonjour,

Ne pas utiliser la fonction header si tu as déjà affiché du code html ou php avant....
De plus, pour ce que tu souhaites faire... les simples liens html suffisent
Donc
<?php
//au debut du script de ta page
session_start();


//récupération propre des variables AVANT de les utiliser
$id_user = !empty($_SESSION['id']) ? $_SESSION['id'] : "";


?>

Puis dans ton menu
<li><a href="velo.php?id=<?php echo $id_user; ?>">Velo</a></li>
<li><a href="course à pied.php?id=<?php echo $id_user; ?>">Course à pied</a></li>



Au passage... evite d'utiliser des noms de fichiers avec des accents et des espaces ( ou tout autre caractères spécial)...
Renomme ton fichier course à pied.php en course_a_pied.php ça t'évitera bien des soucis...
(et si le renomme, tu changes son nom également dans le menu bien entendu )


Et comme le dit Popozz

Sinon c'est la première fois que je vois ça. Une redirection en PHP dans un lien. En sois, un lien est une redirection donc ça ne va pas. Ensuite il ne sert à rien de passer une variable session dans un lien puisqu'il suffirait de récupérer cette variable session depuis l'autre page.


Quoi qu'il en soit, dans tes différentes pages, pour vérifier que l'utilisateur est bien connecté
<?php
//au debut du script de ta page
session_start();

//récupération propre des variables AVANT de les utiliser
$id_user = !empty($_SESSION['id']) ? $_SESSION['id'] : "";

//Si l'utilisateur n'est pas connecté
if(!$id_user){
  //retour à la page d'accueil de ton site par exemple
  header('location : index.php');
}
?>




0
flops21 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
ok,

sur chacunes de mes page j'ai ecrit


<?php
session_start();
if (isset($_SESSION['pseudo']))
{
?>

mais je voudrais aussi que dans la barre d'adresse ce soit note


velo.php?id=".$_SESSION['id'])

la ça n'est pas marqué.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
Avec le code que je t'ai donné... si...
0
flops21 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
PS: pourtant ma variable de session existe bien car j'ai mon pseudo qui s'affiche.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
Au passage, merci de préciser le langage dans les balises de code afin d'avoir (comme pour ceux que je t'ai donné...) la coloration syntaxique.
Explications ( à lire ENTIEREMENT !! ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
flops21 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
C'est bon j'ai juste modifier
t'on
<?php echo $id_user; ?>

par
<?php echo $_SESSION['pseudo'] ?>
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
Ben.. tant qu'à le faire bien... et histoire que je ne t'ai pas donné du code commenté pour rien...
Il faut
//récupération propre des variables AVANT de les utiliser
$pseudo= !empty($_SESSION['pseudo']) ? $_SESSION['pseudo'] : "";

Et donc tes echo deviennent
<?php echo $pseudo; ?>
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Et un peu de lecture au passage histoire que tu écrives tes codes proprement
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
0