IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Transmission d'id entre pages [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 107
    Par défaut Transmission d'id entre pages
    Bonjour,

    Alors j'ai un petit souci sur mon site que je développe en suivant l'architecture MVC. Je vous explique tout ça :
    - Côté base de données, j'ai :
    • une table UTILISATEURS avec les champs suivants : id_user, login, mdp, nom, prenom, email

    • une table DROIT avec : id_user, id_groupe

    La table droit me sert, comme son nom l'indique, à donner des droits à un utilisateur selon le groupe.
    Maintenant je voudrais pouvoir modifier la table droit depuis mon site et ne plus avoir à modifier directement la DB... Si jamais quelqu'un d'autre est amené à le faire.
    C'est pourquoi je me suis lancé dans le développement de ce petit module, j'avais déjà fait quelque chose qui permettait de lister les utilisateurs et de les modifier (donc requêtes sur la table UTILISATEURS). Tout fonctionne pour ça.
    Par contre, là où j'ai un problème c'est au niveau de la table DROIT, je n'arrive pas à la modifier correctement. En fait, je n'arrive pas à accéder à l'id_user d'une vue à l'autre.
    Voici les codes :
    VUE PRINCIPALE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<?=HTTP_PATH?>users/group-<?=$aUser['id_user']?>/"><button class="btn btn-default"><i class="icon-pencil"></i>Ajout groupe</button></a>
    envoi au CONTROLLER
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if($_GET['_action_'] == 'group'){
    	$aUserGroupe = getAUserGroupe($_GET['_id_']);
    	$content_for_layout = 'view/'.$_GET['_page_'].'/'.$_GET['_page_'].'_group_view.php';
    	include ('view/layout/global_layout.php');
    }
    demande une fonction au MODEL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function getAUserGroupe($id_user)
    {
    	$db = new db_mysqli();
    	$query = "SELECT id_user,login FROM user JOIN droit USING(id_user) WHERE id_user='".$id_user."'";
    	$infos = $db->query($query);
    	return $infos[0];
    }
    Ensuite je vais à la VUE de la modif de groupes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form action="<?=HTTP_PATH?>users/updateGroupe-<?=$aUserGroupe['id_user']?>/" id="form_sample_1" class="form-horizontal" method="post">
     
                      <input type="text" class="span6 m-wrap" name="id_user" value="<?=$aUserGroupe['id_user']?>"/>
     
                      <input type="text" class="span6 m-wrap" name="id_groupe" value=""/>
     
                    <button type="submit" class="btn btn-primary">Modifier</button>
              </form>
    J'ai enlevé les div, etc... pour plus de lisibilité.
    Et donc en fait sur cette vue, je vois bien que dans l'URL de la page l'id_user est pris en compte puisqu'elle ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/site/users/group-22/
    pour l'utilisateur 22. Mais par contre je n'arrive pas à y accéder dans la vue des groupes, pour attribuer la valeur de l'id_user à l'input correspondant par exemple.
    Et ensuite le CONTROLLER fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if($_GET['_action_'] == 'updateGroupe'){
    	addGroupe($_POST['id_user'], $_POST['id_groupe']);
    	header('location:'.HTTP_PATH."users/");
    }
    et la fonction dans le MODEL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function addGroupe($id_user, $id_groupe){
    	$db = new db_mysqli();
    	$query = "INSERT INTO droit VALUES ('".$id_user."','".$id_groupe."')";
    	$db->query($query);	
    }
    En gros, dans la vue de modif des groupes, j'aimerais pouvoir afficher la valeur de l'id_user dans un input. Or je n'arrive pas à la récupérer. Par contre si j'entre manuellement les valeurs, c'est bien pris en compte dans la DB. Je n'arrive simplement pas à récupérer cet id...

    J'espère avoir été le plus clair possible,

    Cordialement,


    PS : je fais une connexion à ma db dans chaque fonction juste pour les tests.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je ne comprends pas pourquoi tu mets ton id_user en champs dans le formulaire puisque je ne pense pas qu'il faille pouvoir le modifier et que tu le passes egalement en GET dans l'action.
    Sinon tu devrais simplement afficher $_GET et $_POST pour mieux suivre ce qui se passe.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 107
    Par défaut
    Merci du coup de main.

    En fait je veux mettre l'id_user dans le champ de formulaire simplement pour être sûr que c'est le bon qu'on modifie. Au pire je le rendrai non modifiable.
    Ok je vais faire des tests comme ça.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    N'oublie pas que, que utilises un champ modifiable, un champ non modifiable ou une donnée dans l'url, toutes ces informations peuvent être modifiées par l'utilisateur et doivent être contrôlées et jamais utilisées directement dans une requête.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 107
    Par défaut
    Oui, merci du conseil.
    Je vais y réfléchir et revenir dès que j'aurais avancé.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 107
    Par défaut
    Bonjour,

    C'est bon j'ai résolu le problème hier, j'ai oublié de reposter. Je passais mal l'id entre les pages, je m'en suis rendu compte en faisant des tests avec GET et POST.

    Merci en tout cas.

    Cordialement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. transmission de données entre pages
    Par laurentSc dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2010, 10h28
  2. Transmission de variables de sessions entre pages
    Par oclone dans le forum ASP.NET
    Réponses: 5
    Dernier message: 01/04/2009, 17h39
  3. Transmission de parametres entre 2 pages
    Par Identifiant dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 21/10/2008, 00h56
  4. [LG]Transmission de données entre C et pascal
    Par jer_the_one dans le forum Langage
    Réponses: 16
    Dernier message: 26/05/2004, 11h03
  5. Simulation de transmission de paquet entre différent réseaux
    Par MelloW dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 19h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo