[RESOLU] Attribuer une opération à un utilisateur

Eléphanteau du PHP | 34 Messages

02 oct. 2019, 21:50

Bonjour à toutes et à tous,

Mon projet prend forme grâce à votre aide =D> =D>

J'ai pris une base d'un script pour les users (il y a moyen de s'enregistrer, de se loguer, perte du mot de passe, ....) Bref un espace membre de base.

J'ai ajouté, pour mon projet, une table operation avec un fichier ajout_operation.php pour que l'utilisateur puisse, comme son nom l'indique, ajouter une opération (date, montant, calcul,...... bref un formulaire) mais je voudrais que cette opération soit attribué à l'utilisateur connecté.

J'ai bien compris que je dois aller chercher l'id de l'utilisateur mais alors je n'ai pas trouvé d'explications que je puisse comprendre.

Comment faire pour récupérer l'id de l'utilisateur qui est connecté et comment l'ajouter "automatiquement" dans l'opération que ce même utilisateur aura introduite dans le formulaire et dans la base de données. (la table operation contient un id_membre qui sera destiné à enregistré l'id de l'utilisateur)

Merci d'avance pour vos pistes et aides.

PS : je ne vais pas noyer ce post de code vu que je ne sais pas tout ce qu'il faut chercher dans le code existant (je parle du code du script espace membres)

Juste un petit bout de code quand même ;)

Est ce que c'est ce code qui maintient et reconnait l'utilisateur ?
<?php
session_start();
if (strlen($_SESSION['id']==0)) {
  header('location:logout.php');
  } else{
?>




Mammouth du PHP | 2703 Messages

02 oct. 2019, 21:57

l'id est donc dans $_SESSION['id']

Eléphanteau du PHP | 34 Messages

02 oct. 2019, 22:21

Ok merci donc jusque là, ma logique est bonne.

Et après je fais comment dans le principe de mon nouveau fichier ?

J'ajoute ce même code ? et id_membre de la table operation =$SESSION ?

Merci pour vos aides et pistes.

Eléphanteau du PHP | 34 Messages

06 oct. 2019, 20:45

Problème résolu par un input dans le formulaire.

<input type="hidden" class="text" value="<?php echo($_SESSION["id"]); ?>" name="id_membre" required>
Merci ;)

Mammouth du PHP | 2703 Messages

06 oct. 2019, 20:53

si tu vérifies dans la page qui traite le formulaire que tu es connecté, que tu mets un session_start();, c'est inutile, vu que l'id est dans $_SESSION["id"]
et c'est même une faille de sécurité car il est possible de se faire passer pour quelqu'un d'autre en utilisant les fonctionnalités de son navigateur pour modifier la valeur du champ hidden pour l'id de quelqu'un d'autre, avant de valider le formulaire.

Eléphanteau du PHP | 34 Messages

06 oct. 2019, 21:29

or 1

Tu m'en veux ou quoi :) :) :)

Je comprends rien à ce que tu dis ;) ;)

Mammouth du PHP | 2703 Messages

06 oct. 2019, 21:36

<input type="hidden" class="text" value="<?php echo($_SESSION["id"]); ?>" name="id_membre" required>
il y aura
<input type="hidden" class="text" value="1" name="id_membre" required>
dans la navigateur si ton id vaut 1.
tu utilises les outils de développeur de ton navigateur pour mettre :
<input type="hidden" class="text" value="2" name="id_membre" required>
avant de valider le formulaire.
dans le traitement du formulaire, tu utilises $_POST['id_membre'] pour avoir l'id, tu as donc quelqu'un connecté avec l'id 1, qui se fait passer pour l'id 2 alors qu'il ne connait pas le login et password de l'id 2, magnifique !

Eléphanteau du PHP | 34 Messages

06 oct. 2019, 21:38

Ah oui vu comme ça : pas bon du tout.

Quelle est la solution pour éviter cette borde ?

Merci

Mammouth du PHP | 2703 Messages

06 oct. 2019, 21:42

"si tu vérifies dans la page qui traite le formulaire que tu es connecté, que tu mets un session_start();, c'est inutile, vu que l'id est dans $_SESSION["id"]"