Variables $_SESSION non transmises d'une page à l'autre
Bonjour la communauté !
Mon site tourne très bien en local, mais depuis que je l'ai mis en ligne je rencontre quelques difficultés, en particulier avec les sessions qui ne se transmettent pas hors de la page de connexion.
Les utilisateurs s'identifient sur la page /index.php dont voici les premières lignes :
<html lang="fr"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="description" content=""> <meta name="author" content=""> <?php session_start(); include'./fonctions.php'; ?> <?php if(isset($_POST['connect'])){ if(isset($_POST['club']) && isset($_POST['password'])){ connexion($_POST['club'], $_POST['password']); } else { echo "<center><p style='color:green'>Merci de remplir tous les champs.</p></center>"; } } ?>
Cette page fait appel à la fonction connexion() présente dans le fichier /fonctions.php (inclus) :
<?php session_start(); //Fonction permettant de se connecter à la BDD function connexionbdd() { $bdd_user='comphexf_awzxecfdsq'; $bdd_password='KMpy!o~,Q_nqVo(98)'; $bdd_host='localhost'; $db='comphexf_cj44'; return mysqli_connect($bdd_host, $bdd_user, $bdd_password, $db); } //fonction permettant la connexion des utilisateurs function connexion($user, $password){ $conn = connexionbdd(); $query = mysqli_query($conn,"SELECT * FROM clubs WHERE club_nom = '".$user."' AND club_pw = '".$password."'"); if(mysqli_num_rows($query) != 0) { // si il y a un résultat, mysqli_num_rows() nous donnera alors 1. Si mysqli_num_rows() retourne 0 c'est qu'il a trouvé aucun résultat session_start(); //Ouverture d'une session, dans laquelle on stock des variables de session $_SESSION['club'] = $user; header('Location: ./index.php'); } else { echo "<center><p style='color:green'>Désolé, nous ne sommes pas parvenu à vous identifier.</p></center>"; } }
La connexion se passe bien, une session est créée et la variable $_SESSION['club'] fonctionne sur la page /index.php où l'utilisateur est redirigé. Cependant, lorsque je change de page, cette variable de session n'existe plus. Exemple avec la plage ./competition.php dont voici les premières lignes :
<html lang="fr"> <?php session_start(); include'./fonctions.php'; ?> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="description" content=""> <meta name="author" content=""> <?php ini_set('display_errors', 1); error_reporting(E_ALL); ?>
Erreur retournée : Undefined variable: _SESSION ......
Pourtant, session_start(); et bien placé avant affichage ? Je sèche ...
Je ne sais pas si ça peut avoir un lien, mais les accents ne s'affichent pas sur le site (pourtant UTF8 ?).
--> https://competcdck44.yo.fr/
Merci par avance,
Paul
Les commentaires de cette page ont été verrouillés !