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 :

[Conception] Une page pour tous les traitements ? [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Par défaut [Conception] Une page pour tous les traitements ?
    Bonjour,

    J'ai un petit soucis avec mes pages, lorsque un élément est envoyé en post, l'actualisation force a renvoyer les contenus une deuxième fois. Des éléments javascripts peuvent rechercher mes pages, d'ou des renvois possibles assez embêtants.

    En parcourant le web, je vois ces pages asp ou php s'appelant "do" suivit d'un type d'action. Est-ce une reecriture ou s'agit-il d'une facon de centraliser les traitements possibles sur une seule page et de rediriger ensuite sur la page actualisee. Si c'est la cas, cette methode est-elle fiable ? Elle resoudrait mon soucis mais a quel prix ?

    D'avance merci pour vos suggestions.

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    j'ai rien compris à la demande. tu voudrais pas faire plus simple ou plus explicite stp
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  3. #3
    Membre très actif
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Par défaut
    Désolé, j'ai écris un mélange de tout ce que j'ai dans la tête ^^

    Est-il intéressant de regrouper tous les traitements de formulaires dans une même page php traitement.php ?

    Par exemple la gestion du login serait :
    login.php > traitement.php > index.php

    La gestion d'un post de forum :
    nouveauMessage.php > traitement.php > message.html

    Ou traitement.php serait l'intermédiaire servant a faire les requêtes et rediriger ensuite.

    Cette méthode est-elle fiable ? Intéressante ? Répandue ?

    C'est plus clair ?

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    A part compliquer la maintenance de ton code je n'y vois que peu d'intérêt, si tu as 25 formulaire dans ton site , le fichier va devenir énorme.

    Une page de traitement par formulaire en revanche me semble déjà plus clair. Après c'est selon les gouts de chacun
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre expérimenté Avatar de Korri
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Par défaut
    Bonjour,

    Cette idée est trés bonne, mais comme le souligne grunk tu risque d'avoir un gros fichier, aussi je te conseil de faire un page traitement.php qui aurais un include qui inclu la bonne page en fonction de l'action passée en parametre.

    ça donnerais quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
         //Trés important vérifier la variable pour ne pas créer de faille
         if(!isset($_GET['do'] || !preg_match('/[a-zA-Z\-_]+/', $_GET['do']) ){
             die('Action invalide');
         }
         include('actions/'.$_GET['do'].'.php');
    ?>
    Il serais important de rajouter une redirection , par exemple en ajoutant a la fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p>Cliquez <a href="<?php echo $_GET['goto']; ?>">ici</a> pour retourner a l'acceuil.
    Enfin tu a l'air de savoir ce que tu fait, tu devrais t'en sortir.

    Ce traitement évite de nombreux probleme de double post etc, et il est communément utilisé sur tout les forum, blog etc..

    Tu devrais jeter un oeuil du coté du modele MVC.

    Bonne continuation, en esperant t'avoir été utile.

  6. #6
    Membre très actif
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Par défaut
    A part compliquer la maintenance de ton code je n'y vois que peu d'intérêt, si tu as 25 formulaire dans ton site , le fichier va devenir énorme.

    Une page de traitement par formulaire en revanche me semble déjà plus clair. Après c'est selon les gouts de chacun
    Ça complique le code, oui et non. Ça me rempli une page mais allège l'arborescence d'autant de fichiers que j'aurai pu créer pour des traitements individuels. un bon switch() et hop

    Cette idée est trés bonne, mais comme le souligne grunk tu risque d'avoir un gros fichier, aussi je te conseil de faire un page traitement.php qui aurais un include qui inclu la bonne page en fonction de l'action passée en parametre.
    Ton idée va plus loin que ce que a quoi je pensais, de part sa gestion des include. Ca recoupe l'idée précédente au niveau du nombre de fichiers mais de cette façon, rangées dans un dossier traitements par exemple, ca me parait être une idée bien judicieuse. Ca virerait en en-tete de mes pages de formulaires les 3 tonnes de lignes de traitements, et ca rendrait le tout un peu plus intelligent.

    Pour faire un mix de vos deux suggestions, je vais peut-être bien opter pour cette page de traitement, de la facon dont vous me conseillez de le faire.

    Je pense que si c'était terrible et dangereux, quelqu'un l'aurait déjà dit maintenant ^^.

    Merci a vous deux !

    PS : Pour les motifs de conception, je m'y suis déjà penche au moment du développement de mon système template. Mais c'est l'idée générale effectivement.

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

Discussions similaires

  1. Comment faire un alignement vertical d'une image pour tous les navigateurs?
    Par Alexandrebox dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 06/04/2009, 14h10
  2. Réponses: 3
    Dernier message: 29/01/2009, 10h59
  3. Réponses: 4
    Dernier message: 18/08/2008, 15h11
  4. Réponses: 3
    Dernier message: 06/09/2007, 14h31
  5. Installation d'une imprimante pour tous les utilisateurs
    Par chobol dans le forum Windows XP
    Réponses: 4
    Dernier message: 04/09/2007, 22h28

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