8768 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai besoin de votre aide, après des heures de recherches, de manipulations ..
je n'y suis toujours pas arrivé Smiley ohwell

Donc je souhaite créer une partie membre dans mon site , donc j'ai crée mon formulaire d'inscription, de connexion .. tout est Ok cela fonctionne avec les informations stockées dans la base de donnée ...Ect

Mais lorsque je clic sur une autre page, bien sur ma session n'est plus active Smiley ohwell
Je sais que je dois utiliser la fonction Session_start, mais je ne vois pas comment définir mes variables. Sachant que mes variable se personnalise en fonction du membre qui se connecte (pas tous le même nom, pseudo ...)

J'ai commencé à faire cela mais sans succès il ne connait pas la valeur de mes variables.



<?php
    //demarrage session
    session_start ();
	
    if (isset($pseudo,$password)) {

         
        try {
            include ("html.class.php");
            include ("db.inc.php");
			include ("page1.php");
			
            $dbh = new PDO($SERVEUR, $USER, $PWD);
            $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
            $resultat = $dbh->prepare("SELECT * FROM users WHERE pseudo = [langue]seudo AND pwd = [langue]wd");
            $resultat->bindValue(':pseudo', $pseudo, PDO::PARAM_STR);
            $resultat->bindValue(':pwd', $password, PDO::PARAM_STR);
            if (!$resultat->execute()) {
                echo '<br/>ERREUR EXECUTE requete';
            }
            $_SESSION['utilisateur'] = $resultat->fetch(PDO::FETCH_ASSOC);
            //nom => $_SESSION['utilisateur']['nom']
            //prenom => $_SESSION['utilisateur']['prenom']
        } catch (PDOException $pdoE) {
            echo '<br/>ERREUR PDO:<br/>'.$pdoE->getMessage();
        } catch (Exception $e) {
            echo '<br/>ERREUR NON PDO:<br/>'.$e->getMessage();
        }
    } else {
        echo 'Nom et Prenom ne sont pas d&eacute;finis';
	
    }
?>



A vrai dire je suis désespérer face à mon problème Smiley ohwell
Cordialement,
C.L
Salut,

Il faut en effet utiliser les sessions de PHP qui vont permettre de persister certaines données.
A chaque fois que tu veux utiliser la variable globale $_SESSION, il faut que la première ligne de ton fichier comporte session_start() qui active l'utilisation de la session (ça créer une nouvelle session ou bien ça reprend la session courante si elle existe).

Son utilisation est extrêmement simple :
Pour écrire il suffit de faire $_SESSION['var'] = $var; //$var peut avoir presque tous les types.
Pour lire c'est l'inverse : $var = $_SESSION['var'];
On peut pas faire plus simple !

Ce qui est plus compliqué, c'est de bien utiliser les sessions...

Un très bon tuto : https://www.grafikart.fr/tutoriels/php/gestion-membre-229
Tu peux le décortiquer, le regarder 10 fois si besoin, tu as tout ce qu'il te faut.

Le principe est de se connecter via un formulaire de connexion et sur ta page de traitement de ton formulaire tu vérifies si le login existe en base, que le mot de passe correspond, si c'est OK, tu enregistres l'id de l'utilisateur (et d'autres infos si tu veux mais là on va à l'essentiel...) en session.
Ensuite, sur chaque page chargée de l'espace privé, tu vérifies d'abord si il existe un id en session et tu affiches les infos liées à CET utilisateur, sinon tu rediriges vers la page de login (ou une autre).
Ça c'est pour le principe, après il faut mettre plein d'autres trucs en place...