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

Langage PHP Discussion :

Requete table variable ($table), méthode pour transmettre le paramètre $table


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut Requete table variable ($table), méthode pour transmettre le paramètre $table
    Bonjour,

    Sur un site en php, je peux dans le back office supprimer des éléments contenus dans plusieurs tables.

    Par exemple, quand je suis dans la gestion des articles, je peux supprimer un article.
    Quand je suis dans la gestion des images, je peux supprimer une image.

    A chaque fois, j’appelle un fichier différent qui contient la requête pour supprimer.

    Je cherche donc à n’avoir qu’un seul fichier pour effectuer ces opérations.

    Je peux passer mes variables id (article ou image) en paramètres. Mais il faudrait aussi que la table soit variable.

    Je sais faire une requête avec une variable table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = $bdd->prepare('SELECT titre FROM '.$table.' WHERE id = ?');
    Mais je me demandais si c’était judicieux de transmettre le nom de ma table comme ça en post ?

    C’est dans un back office, donc pas en accès publique.

    Vous en pensez quoi ?

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    J'en pense que, back office ou non, ce n'est jamais une bonne idée d'exposer quoi que ce soit sur la logique métier ou modèle de l'application et à plus forte raison des éléments utilisés dans les requêtes SQL.

    A moins que tu ne sois certain à 100% que personne ne pourra pirater ton back office (et à moins d'être le fils de Chuck Norris, je pense que personne n'aura l'aplomb pour l'affirmer avec certitude) alors il vaut mieux éviter de donner au client la main sur des éléments des requêtes SQL sinon c'est ouvrir grand ses portes aux injections.

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Entièrement d'accord avec Benjamin !
    D'autre part, la première question à te poser est surtout pourquoi
    Je cherche donc à n’avoir qu’un seul fichier pour effectuer ces opérations.
    ?

    Quelle est l'utilité ?
    Autant, ça se comprend aisément pour des ressources à envoyer au client (CSS, JavaScript, ...) autant côté serveur, à part complexifier inutilement un code fonctionnel, je ne vois pas l'intérêt.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    plutôt que de transmettre directement le NOM de la table, je transmettrais une variable "à tester" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="blabla.php?tab=articles&id=123">modifier</a>
    Et on teste :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if($_GET['tab']== 'articles'){
      $latable = 'TAB_ARTICLES';
    } elseif($_GET['tab']== 'photos'){
      $latable = 'TAB_PHOTOS';
    } else {
      echo 'VADE RETRO SATANAS !!';
      exit;
    }
    De cette manière, les noms des tables ne sont pas modifiables "de l'extérieur".

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Hello,

    Effectivement, je pense aussi que c’est une mauvaise idée de transmettre le nom de la table. Je ne suis pas le fis de Chuck Norris !

    La seule utilité, c’est de limiter le nombre de fichiers. Ce n’est bien sur pas un manque d’espace sur le serveur. En fait, dès que je commence à faire des copier / coller ou des fichiers dupliqués, je me pose toujours la question de voir si il n’y a pas une autre méthode. Je me dis qu’il y a forcément une manière plus optimisée.

    Aussi, je pense à l’avenir. Quand il faut re ouvrir le projet après 6 mois et faire des modifications, je préfère n’avoir qu’un seul fichier à modifier plutôt que 10.

    Jreaux, ta solution fonctionne bien. Merci !

Discussions similaires

  1. Réponses: 24
    Dernier message: 30/08/2014, 22h21
  2. Meilleures méthodes pour rafraichir les pivot table
    Par Nono Sto dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/10/2013, 23h08
  3. Méthode pour modifier un paramètre
    Par hajermi dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 22/10/2009, 09h29
  4. Cherche méthode pour transférer TCDs vers table
    Par rubilacxe dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 30/12/2008, 20h49
  5. requete sql pour bd access97 a tables multiples
    Par waspy59 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 16/03/2006, 00h11

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