Aide Espace Membre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Aide Espace Membre

Re: Aide Espace Membre

par two3d » 04 déc. 2020, 01:51

Comme tu as la session d'ouverte, tu as forcément stocké quelque chose à l'intérieur (un ID, un nom d'utilisateur,...)

Avec ce que tu as stocké, fait une recherche dans la BDD et affiche le lien qui correspond à l'ID ( par exemple, ou au nom d'utilisateur si tu le souhaites, perso je préfère stocker l'ID de l'utilisateur pour aller chercher ses données)
//vérifie si l'utilisateur existe toujours, ça t'évitera des problèmes...
$query = "SELECT * FROM `users` WHERE username='{$_SESSION['username']}'";
$result = mysqli_query($conn,$query) or die(mysql_error());
if (mysqli_num_rows($result) != 1) exit("Votre n'existe plus");
$user = mysqli_fetch_assoc($result);

//ensuite on va chercher ses infos dans la BDD google sheet (ou autre):
$query = "SELECT * FROM `googlesheet` WHERE username='{$user['username']}'";

Re: Aide Espace Membre

par or 1 » 02 déc. 2020, 23:07

$query = "SELECT * FROM `users` WHERE username='$username' and password='".hash('sha256', $password)."'";
si l'url est dans la table users, ce n'est pas énormément différent, ce qu'il faut faire.

Re: Aide Espace Membre

par flhpls63 » 02 déc. 2020, 22:23

Tout à fait l'URL est bien dans la base de données.
Il ne reste plus qu'une requête à faire mais je n'ai pas d'inspiration pour ça .

Re: Aide Espace Membre

par or 1 » 02 déc. 2020, 22:11

ce code dans index.php fait bien le job pour récupérer le username.
<h1>Bienvenue <?php echo $_SESSION['username']; ?>!</h1>
si l'url de la source de l'iframe est dans la base de données, il faut faire une requête avec en paramètre de la requête sql, un des champs de la session.

Re: Aide Espace Membre

par flhpls63 » 02 déc. 2020, 22:04

Je suis tout à fait d'accord :)

Sinon j'avais penser à faire cela, mais pareil je n'en suis pas capable .

Garder le code de la page login.php sans rien modifier et donc être redirigé vers la page index.php.

Sur cette page index en fonction du pseudo(ou mail), le lien (de ma google sheet) que j'ai stocké dans ma BDD apparait .
Est ce que ça pourrait être plus simple?

Voici le code de la page index

Code : Tout sélectionner

<?php // Initialiser la session session_start(); // Vérifiez si l'utilisateur est connecté, sinon redirigez-le vers la page de connexion if(!isset($_SESSION["username"])){ header("Location: login.php"); exit(); } ?> <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="style.css" /> <link rel="shortcut icon" type="image/ico" href="/fav.ico"/> </head> <body> <div class="sucess"> <h1>Bienvenue <?php echo $_SESSION['username']; ?>!</h1> </div> <h4>Retrouvez vous rapports.</h4> <a href="logout.php">Déconnexion</a> <br> <br> <ul id="menu"> <li> <a href="#">Session 1</a> <ul> <li><a href="#">Session 2 </a></li> <li><a href="#">Session 3 </a></li> <li><a href="#">Session 4</a></li> </ul> </li> </ul> <br> <br> <?php echo "<iframe width='70%' height='626' src='"LIEN STOCKE DANS BDD"' frameborder='0' allowfullscreen></iframe><br/>"; ?> </body> </html>
Merci beaucoup.

Re: Aide Espace Membre

par or 1 » 02 déc. 2020, 21:58

"Et bien entendu tintin ne peut pas se connecter à la page index-haddock.php"
donc il faudra vérifier que la valeur passée dans le nom du fichier est bien celle contenue dans la session, car c'est grâce à la session que l'identification est propagée sur toutes les pages du site. il y a donc doublon, identification par le contenu de l'url et identification par la session, c'est se compliquer inutilement la vie quand on est débutant.

Re: Aide Espace Membre

par flhpls63 » 02 déc. 2020, 20:54

Bonsoir Or 1 et merci pour ton retour ,

L'intérêt est que je souhaite faire une page index personnalisée pour chaque membre .
Une fois l'utilisateur connecté il pourra voir notamment une feuille Google sheet que j'intègre.
Cette Google sheet est différente pour chaque utilisateur.
C'est pour cela que je souhaiterais que l'utilisateur soit en fonction de son pseudo (ou son mail) redirigé vers sa page personnalisée

Re: Aide Espace Membre

par or 1 » 02 déc. 2020, 20:35

quel est l’intérêt ?
car avec
$_SESSION['username'] = $username; // à mettre plutôt à un autre endroit
il est possible de récupérer le nom sur la page index.

Aide Espace Membre

par flhpls63 » 02 déc. 2020, 20:30

Bonjour à tous,


Je découvre ce fabuleux site qui est très très instructif, donc merci pour ce site .
J'écris pour obtenir un peu d'aide sur un espace membre (qui fonctionne parfaifement de mon côté)


je souhaiterais ajouter une petite particularité, à savoir, la possibilité lorsqu'un membre se connecte au lieu qu'il soit dirigé vers la page index.php,


qu'il soit dirigé vers une page personnalisé en fonction de son pseudo (ou son adresse mail).
Dans la page login.php je ne sais pas du tout comment je pourrais ajouter cette possibilité.


Quelqu'un aurait-il l'aimable bonté de m'aider ?

Je vous remercie par avance.
Bien cordialement.
Florian.


Voici le code

Code : Tout sélectionner

<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="style.css" /> <link rel="shortcut icon" type="image/ico" href="/fav.ico"/> </head> <body> <?php require('config.php'); session_start(); if (isset($_POST['username'])){ $username = stripslashes($_REQUEST['username']); $username = mysqli_real_escape_string($conn, $username); $_SESSION['username'] = $username; $password = stripslashes($_REQUEST['password']); $password = mysqli_real_escape_string($conn, $password); $query = "SELECT * FROM `users` WHERE username='$username' and password='".hash('sha256', $password)."'"; $result = mysqli_query($conn,$query) or die(mysql_error()); if (mysqli_num_rows($result) == 1) { $user = mysqli_fetch_assoc($result); // vérifier si l'utilisateur est un administrateur ou un utilisateur if ($user['type'] == 'admin') { header('location: admin/home.php'); }else{ header('location: index.php'); } }else{ $message = "Le nom d'utilisateur ou le mot de passe est incorrect."; } } ?> <form class="box" action="" method="post" name="login"> <h1 class="box-title">Connexion</h1> <input type="text" class="box-input" name="username" placeholder="Nom d'utilisateur"> <input type="password" class="box-input" name="password" placeholder="Mot de passe"> <input type="submit" value="Connexion " name="submit" class="box-button"> <p class="box-register">Vous êtes nouveau ici? <a href="register.php">S'inscrire</a></p> <?php if (! empty($message)) { ?> <p class="errorMessage"><?php echo $message; ?></p> <?php } ?> </form> </body> </html>


Le problème vient de ces lignes que j'aimerais modifier

Code : Tout sélectionner

if ($user['type'] == 'admin') { header('location: admin/home.php'); }else{ header('location: index.php');
j'aimerais dire si le pseudo Tintin se connecte qu'il soit redirigé vers la page index-tintin.php
Si le pseudo Haddock se connecte qu'il soit redirigé vers la page index-haddock.php

Et bien entendu tintin ne peut pas se connecter à la page index-haddock.php



Un grand merci par avance pour votre aide