Seth_ I warn you, I'm armed ! | Bonjour à tous
J'ai hésité à poster dans la catégorie PHP, mais à mon avis c'est au niveau de formulaire et donc du html que ça déconne
Voila mon souci : j'ai un mini-site tout bidon osefcépagrav qui permet de faire des fiches.
Plusieurs utilisateurs ont accès à ma base de données. Première page : authentification, une fois cette page passée, on affiche la liste des fiches existantes et en fonction de l'auteur des dîtes fiches, les actions possibles ne sont pas les mêmes :
(j'utilise de vrais noms, alors je les ai cachés)
Là par exemple, je suis connecté avec l'utilisateur D. Si je clique sur Lire, ça fonctionne, je récupère bien la page que je veux. Modifier et Supprimer, pareil.
Par contre si je clique sur le Lire des autres lignes, je vois toujours celle de l'utilisateur D
Si je change d'utilisateur, le problème reste le même. Chaque bouton ramène vers la fiche de l'utilisateur connecté.
J'ai aussi un utilisateur Administrateur qui lui peut normalement tout faire (voir, éditer, supprimer), mais alors lui ne voit que la dernière fiche créée (celle de l'utilisateur F)
Voici le code du formulaire où il y a la liste :
Code :
- <body>
- <form action="modify.php" method="post">
- <table id="liste">
- <tr>
- <th>
- Titre de la fiche |
- </th>
- <th>
- Date de la dernière modification |
- </th>
- <th>
- Auteur de la fiche |
- </th>
- <th colspan="3">
- Actions disponibles
- </th>
- </tr>
- <?php
- $co = new PDO('mysql:host=127.0.0.1;dbname=pwet', $_SESSION['login'], $_SESSION['pwd']); //connexion à la bdd
-
- $liste=$co->query("SELECT id, owner, date_redac, nom FROM fiche ORDER BY id ASC";); //affiche l'id, l'auteur, la date de rédaction, titre depuis la table 'fiche' triés par id ascendants.
- $liste->setFetchMode(PDO::FETCH_OBJ); //retourne les résultats sous type objet.
- while($tri=$liste->fetch()){ //boucle qui affiche le titre, l'auteur et la date de rédaction.
- ?>
- <?php
- $liste_date = $tri->date_redac;
- list($yyyy, $mm, $dd) = explode("-", $liste_date);
- $liste_date = "$dd-$mm-$yyyy";
- ?>
- <tr style="<?php if($utilisateur == $tri->owner){
- echo "background-color: #b5e2f9;";
- }else{
- echo "background-color: #ff8c8c;";
- }
- if($utilisateur == "Administrateur";){
- echo "background-color: #9cff8c";
- }?>">
- <?php if($utilisateur == $tri->owner || $utilisateur == "Administrateur";){?>
- <td>
- <?php echo $tri->nom;?>
- </td>
- <td>
- <?php echo $liste_date;?>
- </td>
- <td>
- <?php echo $tri->owner;?>
- </td>
- <td colspan="3">
- <input type="hidden" name="id_select" value="<?php echo $tri->id;?>" />
- <input type="submit" name="voirfiche" value="Lire" />
- <input type="submit" name="fiche_to_modify" value="Modifier" />
- <input type="submit" name="fiche_to_delete" value="Supprimer" />
- </td>
- <?php } else { ?>
- <td>
- <?php echo $tri->nom;?>
- </td>
- <td>
- <?php echo $liste_date;?>
- </td>
- <td>
- <?php echo $tri->owner;?>
- </td>
- <td colspan="3">
- <input type="submit" name="voirfiche" value="Lire" />
- </td>
- <?php
- }
- }
- $liste->closeCursor(); //on ferme le curseur.
- ?>
- </tr>
- </table>
- </form>
- </body>
|
Normalement, l'id de ma fiche devrait être récupéré puis envoyé à la page suivante (modify.php). Est-ce qu'il y a une transformation du type de la variable à faire (id qui sert dans une requête mysql pour appeler les bonnes données en fonction de l'id fourni) ?
Je vous avouerai que c'est un peu flou pour moi tout ça (le changement de type)
Je me doute que ça chie au niveau des multiples boutons submit, mais je ne vois pas comment corriger ça tout en gardant la mise en page et la navigation actuelle
Des idées ?
Merci Message édité par Seth_ le 19-10-2009 à 15:03:40
|