L'utilisateur reste connecter sur tout les page de mon site
Résolu
mobrobot
Messages postés
182
Statut
Membre
-
mobrobot Messages postés 182 Statut Membre -
mobrobot Messages postés 182 Statut Membre -
Bonsoir a tous le monde s'il vous plait j'ai fouillée par tous sur le NET je n'arrive pas a voir ce que je veut, je suis bloque sur un code. au fait mon problème est la suivant je voudrais crée un système qui permettras a l'utilisateur de restée connecter sur tout les pages de mon site comme sur Commentcamarche j'ai essayé le code suivant il m'affiche rien sauf une page blanche
Merci pour votre aide.
//Connexion a la base de donnees
require 'dbconnectM.php';
if(isset($_SESSION['id'])){
$sql = "SELECT * FROM membres WHERE id = ?";
$datas = (array($_SESSION['id']));
try{
$req = $bdd->prepare($sql);
$req->execute($datas);
}catch(Exception $e){
echo 'Erreur : !' .$e->getMessage();
echo "Les datas";
print_r($datas);
}
$resultat = $req->fetch();
?>
<h3><?php echo $resultat['pseudo']; ?></h3>
<?php
}
?>
Merci pour votre aide.
5 réponses
-
Bonjour,
As tu démarré les SESSION dans ton script ? Je ne vois pas le session_start ?
Ensuite... applique ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs (l'affichage des erreurs PHP en plus des PDO que tu as déjà )
et ceci :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Au cas où, montre nous le code COMPLET de ce fichier et non juste un petit bout ....
Cordialement,
Jordane -
Mon nouveau code:
error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //Connexion a la base de donnees require 'dbconnectM.php'; if(isset($_SESSION['id'])){ $sql = "SELECT * FROM membres WHERE id = ?"; $datas = (array($_SESSION['id'])); try{ $req = $bdd->prepare($sql); $req->execute($datas); }catch(Exception $e){ echo 'Erreur : !' .$e->getMessage(); echo "Les datas"; print_r($datas); } $resultat = $req->fetch(); ?> <h3><?php echo $resultat['pseudo']; ?></h3> <?php } ?> <?php> -
le fichier de connexion a la base donnees
try{ $bdd =new PDO('mysql:host=localhost;dbname=membres_du_site; charset=utf8', 'root', ''); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } -
Et le session_start ?
Essaye ça<?php //démarrage des sessions ( à mettre sur TOUTES tes pages) session_start(); error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //Connexion a la base de donnees require_once 'dbconnectM.php'; //récupération PROPRE des variables AVANT de les utiliser $id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL; if($id){ $sql = "SELECT * FROM membres WHERE id = ?"; $datas = array($id); try{ $req = $bdd->prepare($sql); $req->execute($datas); $resultat = $req->fetch(); }catch(Exception $e){ echo 'Erreur : !' .$e->getMessage(); echo "Les datas"; print_r($datas); } if(!empty($resultat)){ echo "<h3>".$resultat['pseudo']."</h3>"; } } else{ echo " AUCUN ID ! "; // à laisser juste le temps des tests } ?>
-
Ou encore mieux...
<?php //démarrage des sessions ( à mettre sur TOUTES tes pages) session_start(); error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //Connexion a la base de donnees require_once 'dbconnectM.php'; //---------------------------------------------------// //fonctions //---------------------------------------------------// /** * Faire une requête SELECT et retourne 1 ligne */ function querySelectOneRow($sql,$datas=NULL){ global $bdd; $resultat = NULL; try{ $req = $bdd->prepare($sql); $req->execute($datas); $resultat = $req->fetch(); }catch(Exception $e){ echo 'Erreur : !' .$e->getMessage(); echo "Les datas"; print_r($datas); } return $resultat; } /** * Récupère les infos d'un user en fonction de son ID */ function getUserInfosById($id){ $sql = "SELECT * FROM membres WHERE id = ?"; $datas = array($id); return querySelectOneRow($sql,$datas); } //récupération PROPRE des variables AVANT de les utiliser $id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL; if($id){ $resultat = getUserInfosById($id); if(!empty($resultat)){ echo "<h3>".$resultat['pseudo']."</h3>"; } } else{ echo " AUCUN ID ! "; // à laisser juste le temps des tests } ?>
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
sa fonction sa m'affiche le pseudo de la personne connecter. Mais quand je me déconnecter il rester toujours affiche sur la page
-
-
voici la page de déconnexion
session_start(); //setcookie("pseudo"," ",time()-3600); //setcookie("pass"," ",time()-3600); $_SESSION = array(); session_destroy(); header("Location: connecter.php");
j'ai mis lessetcookie
en commentaire pars que il n'arrive pas aussi a effacée le pseudo de la personne connecter et le mot de passe dans optiondéveloppement ... -
-