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 :

[Système] Partie administration en PHP avec formulaire et include


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut [Système] Partie administration en PHP avec formulaire et include
    Bonjour à tous,
    Apres plusieurs recherches, je prend l'initiative de vous écrire pour mon probleme.
    Actuellement je suis en train de realiser un projet pour une entreprise consistant à lier une BDD access à une interface Web. La partie cliente fonctionne (les clients donne login/mdp et on acces à leurs informations. La partie administration me pose des problemes. Elle doit permettre d'ajouter un client, une intervention, de modifier une intervention ou e voir les 20 dernieres interventions d'un client.
    J'ai 3 fichiers: index.htm avec la boite de connexion, connexion_base.php pour la connexion à la base et fonctions.php regroupant toutes les fonctions pour la partie administration et utilisé dans connexion_base.php avec un inculde.
    Dans ce fichier php, j'ai mis une fonction pour afficher les differents choix apres connexion de l'admin (ajout d'un client etc...).
    On m'a conseillé de procédé comme ceci:
    Fichier connexion_base.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    /* Partie administeration */
    	echo "Administrateur";
     
    	/*appel des fonctions  se trouvant dans le fichier fonctions.php */
    	$etape = 0; // on dit que l'étape, c'est 0 de base
     
    	if(isset($_POST['etape']))  //si la var etape exsiste
    	{
    	if(!empty($_POST['etape'])) //et si cette var n'est pas vide
    	{
    	$etape = $_POST['etape']; //alors la variable $etape recoit la valeur
    	}
    	}
    	switch($etape) //travail sur la variable $etape
    	{
    	case 0: choix_formu(); break; //si elle vaut 0 alors appellé la fonction choix_formu se trouvant dans le fichier fonctions.php				
    	case 1: fct_ajouter(); break;
    	//default: erreur_saisie(); break; //si la variable contient un chiffre non conforme, alors afficher une erreur
    	}
    Fichier fonctions.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
     
    <html>
    <body>
    <?php
    									/* Fichier fonctions.php */
     
    //fonctions pour le formulaire
    function choix_formu()
    {
    	?>
    	<form action='connexion_base.php?etape=1' method='post'>
    	<p>Veuillez sélèctionner une opération</p>
    		<center><select name='operation'></center>
    		 <option value='rien'></option>
    		 <option value='client'>Ajout d'un client</option> <!-- il va falloir une fonction pour UN choix -->
    		 <option value='nvl_int'>Ajout d'une intervention</option>
    		 <option value='modif_int'>Modification d'une intervention</option>
    		 <option value='affich_int_client'>Afficher les 20 dernières interventions d'un client</option>
    		</select>
    	<center><input  type='submit' name='submit' value='Ok!'></center>	
    	</form>
     
    	<?php
    	}
     
    function ajout_client()
    {
    	?>
    	<form action='connexion_base.php?etape=1.1' metho='post'>
    	<p>Veillez saisir le nom du nouveau client</p>
    	<input type='text' name='sais_client' >
    	<input type='submit' name='submit' value='Envoie'>
    	</form>
    	<?php
    	} 
     
    ?>
    </html>
    </body>
    Déjà, je ne maitrise pas trop les action=page.php?etape=...., si vous avez de la documentation dessus (j'ai trouvé sur les formulaires mais pas de ce "type" là.
    Et ce que la methode utilisé est bonne?
    Mon probleme est que j'arrive pas a "dire " au switch que je suis à l'étape syuivante apres avoir afficher les 4 choix... :'(
    Si je met $etape=2 dans fonctions.php, il aime pas même avec des "sessions"..
    Un peut d'aide serais la bienvenue.
    Merci de m'avoir lu....

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Il faut que tu renseignes dans ton formulaire l'étape que tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form .....>
       ...
       <input type="hidden" name="etape" value="2" />
       ...
    </form>
    et ensuite dans connexion_base tu rajout un cas pour l'etape 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    switch($etape)
    {
       case 0:
          ...
          break;
       case 1:
          ...
          break;
       case é:
          //On fait plein de nouveaux trucs excitants ici !
          break;
       default:
          break;
    }

  3. #3
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Ou alors tu changes ton select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <select name='etape'>
       <option value='0'></option>
       <option value='1'>Ajout d'un client</option>
       <option value='2'>Ajout ......</option>
       <option value='3>Modification ......</option>
       <option value='4'>Afficher les 20 ....</option>
    </select>

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut Rapide!!
    MErci pour cette réponse rapide mais il va bien falloir que je fasse un if ou un truc dans ce style. il y a la liste déroulante: je choisi la 1er option, pour indiqué que c'est la 1er option, je peux, dans mon étape deux faire une fonction comme ceci: si choix = 1 alors appelé fonction xxxx, si choix = 2 alors appelé fonction zzzz ???

  5. #5
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Ben c'est le but du switch/case

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    En passant je te conseilles d'utiliser des noms plutot que des nombres, ca sera plus facile à debugger

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut
    Mais apprament, si je fais:
    select name='etape'></center>
    <option value='rien'></option>
    etc..., il ne me garde pas en mêmoire les variables $login et $pass pourtant, j'ai fait un session_start! Le include fait perdre les données dans les variables

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut
    Bon, j'avance pas dans mon probleme
    Enfaite, j'ai dis que cela venais de
    select name='etape'></center>
    <option value='rien'></option>
    mais c'est pas lié. Le probleme, si il a était mal compris, est que PHP ne garde pas les variables de fonctions.php (transmisent par connexion_base.php) qui "reviennent" dans cx_base.php car le fichier fonctions.php contient uniquement toutes mes fonctions. Je ne comprend pas comment je puis faire, si qqun aurais un lien sa serait "formidable". Je continue a cherché dans mon coté, biensur.
    MErci d'avance aux PHPeurs

    PS: je precise le message d'erreur:
    Notice: Undefined index: login in c:testsphp\site\connexion_base.php on line 81

    Notice: Undefined index: pass in c:testsphp\site\connexion_base.php on line 83
    Identifiant ou mot de passe incorrecte, veuillez réessayer

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut
    Bon, j'ai légerement avancé...
    J'ai viré mon include et mis les fonctions directement dans le fichier connexion_base.php et j'ai toujours les même erreurs ce qui m'ammene a dire que lorsque PHP rentre dans une fonction il ne garde pas les variables d'avant, entre autre $login et $pass. comment puis-je les garder pour les fonctions?!
    Merci d'avance si qqun me lit...

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut
    apprament il faudra faire ceci: $_SESSION['login'] = $login; d'apres http://cyberzoide.developpez.com/php4/faqsession/, suis-je sur la bonne piste? J'essaie et je vous tiens au courant (ou je "me" tiens au courant car je suis seul à me lire?! )!!!

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut Déséspoir
    J'y arrive pas
    Je sais plus quoi faire :/
    Je passe un temps fou devant mais en vain
    Personne n'a envie de m'aider ?????
    En vous remerçiant par avance .......

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut
    Bon je viens d'écrire sur feuille tout ce que permet le fichier connexion_base.php pour m'éclairsir la tête et peut etre aussi vous aider à m'aider ( )
    Voici les differentes étapes:
    * connexion à la base
    *recuperation des champs du formulaire dans des variables $ademail et $login
    *vérification du mot de passe via:
    ** une requete SQL comparant les variables $ademail et $login aux champs se trouvant dans la base
    ** execution de la requete grace à un odbc_do...

    * recuperation du nom du "client" via une autre requete
    *execution de la requete permettant de vérifier si le "client" est bien administrateur
    * SI administrateur
    ** affiche un formulaire de 4 choix (ajout client, ajout intervention, modification int. et voir les derniers int.).
    C'est au dernier point que je bloque car lorsque je choisi l'un des quatre puis OK, il me retourne qu'il ne connait plus les variable $login et $pass (du au rechargement de la page??, si oui j'ai essayer les sessions mais j'ai pas reussi..).
    J'espere que c'est plus clair...
    Merci d'avance!

  13. #13
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Il faut que tu apprennes à isoler tes problèmes.
    Tu as un problème de session => tu crées deux bêtes fichiers pour travailler sur les sessions, afin de t'abstraire de tout le reste et te concentrer sur l'essentiel.


    Exemple : Tu crées un nouveau script =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
     
    session_start();
    if (!isset($_SESSION['login'])) {
      $_SESSION['login'] = 0;
    }
    $_SESSION['login']++;
     
    echo $_SESSION['login'];
    ?><form action="" method="POST"><input type="submit" value="clic !" /></form>
    Si tu le lances dans ton navigateur et que tu cliques, que ce passe-t-il ?

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut
    Je viens d'essayer ce script, si je lance et que je clique cela ajoute +1 à chaque clique...

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut
    Enfaite, si j'ai mieux compris ta réponse, mon probleme viens des sessions. Et selon toi, le mieux est de m'entrainer avec les sessions via des exemples simples? Le gros probleme est le temps car il me reste qu'une semaine pour faire encore plein de choses dans la partie administration
    Qu'en penses tu?

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut
    Bon j'ai une tite question concernant les sessions:
    ayant lu que les sessions devait toujours commencer en debut de page, est-il possible de faire des includes? si oui, est-ce que la page inculd doit quand même avoir session_start?
    merci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/01/2006, 09h03
  2. [Système] Lancer un script perl avec PHP
    Par pepite dans le forum Langage
    Réponses: 2
    Dernier message: 09/01/2006, 12h30
  3. [Sécurité] Masquer une partie de site web avec PHP
    Par Marc365 dans le forum Langage
    Réponses: 3
    Dernier message: 21/10/2005, 15h30
  4. [Système] Trouver une clef USB avec PHP
    Par chico_du_33 dans le forum Langage
    Réponses: 8
    Dernier message: 05/10/2005, 17h29

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