Affiche menu après saisie et validation

Résolu
Signaler
Messages postés
10
Date d'inscription
mardi 1 septembre 2009
Statut
Membre
Dernière intervention
12 octobre 2011
-
Messages postés
24
Date d'inscription
samedi 9 février 2008
Statut
Membre
Dernière intervention
2 octobre 2015
-
Bonjour à toutes et à tous,
Je prends un peu d'avance pour vous souhaitez une bonne et heureuse année 2009. Voilà qui est fait.
Passons aux choses sérieuses.
J'ai une page php avec un formulaire très simple; une zone de saisie () ainsi qu'un bouton pour soumettre le formulaire.
J'ai également un menu et divers autres petites choses en relations, qui sont 'installé' dans un 'div' que j'ai caché via 'document.getElementById('menu').style.display='none';'.

Ce que je cherche à faire, est de contrôler la valeur saisie dans la zone de saisie, vérifier avec la table adéquate puis afficher le menu et le 'reste' sans changer de page.

Amicalement merci.

3 réponses

Messages postés
46
Date d'inscription
vendredi 24 octobre 2008
Statut
Membre
Dernière intervention
27 janvier 2009

Bonjour,

Je ne suis pas sûr de comprendre la phrase : "Ce que je cherche à faire, est de contrôler la valeur saisie dans la zone de saisie, vérifier avec la table adéquate puis afficher le menu et le 'reste' sans changer de page".

Tu souhaites créer un formulaire, puis vérifier la valeur entrée (via comparaison avec un table de bdd?), puis retourner sur la page avec les menus rendus visible si la validation est OK?

Si c'est bien cela, c'est pas bien compliqué de vérifier si la valeur est présente dans une table.
L'action que tu met sur le bouton de validation doit renvoyer sur une page du genre verif.php, qui récupère la valeur entrée dans le form (post ou get), et recherche si elle est présente dans la table.
Ensuite si c'est OK, tu retournes sur la page de départ et tu autorises l'affichage des menus.

Je serais toi, je ferai tout en php, sans javascript.
Je ne suis carrément pas une star en javascript, mais comme il est exécuté côté client, je suppose que le code source sera visible, et donc même si tu rends invisible le menu, un clic droit sur la page suffira pour connaître les liens du menu.

Donc pour masquer tes menus, sur ta page, je pense qu'un code du genre suivant devrait fonctionner:
if($valide)
{
tu affiches tes menus
}
else
{
affichage du formulaire
}

et $valide est une variable que tu places à 1, et qui provient de la page verif.php, si la validation est ok évidemment.

je suis clair?
faudrait que des boss confirment ça.
Messages postés
10
Date d'inscription
mardi 1 septembre 2009
Statut
Membre
Dernière intervention
12 octobre 2011

Merci pour ta réponse, je vais essayer dans cette direction.
Messages postés
24
Date d'inscription
samedi 9 février 2008
Statut
Membre
Dernière intervention
2 octobre 2015

Bonjour,

J'ai un peu le meme problème sauf que j'ai structuré ca différement ...
Quand j'ouvre mon site, j'ai que mon menu pour me connecter qui s'affiche. Une fois la saison du login et du mot de passe, je traite les informations pour savoir si j'ouvre une session ou non. Et si je l'ouvre, j'aimerais affiché mon menu administrateur ou utilisateur suivant le "niveau" de la personne qui vient de se connecter.
J'arrive parfaitement a afficher ces menu sur ma page connexion, donc dans le corps mais pas dans mon menu a gauche ...

Voici ma page connexion ==>
<?php
require("connectBDD.php");
//ouverture d'une session
session_start();
$login=$_POST["login"];
$mdp=$_POST["mdp"];
$libErr="";
if (isset($_REQUEST["valider"]) && (empty($login) || empty($mdp)))
{
    $libErr=" Le pseudo ou le mot de passe n'est pas renseigné";
}

if (isset($_REQUEST["valider"]) && empty($login)==false && empty($mdp)==false)
{
    // on vérifie la validité des informations dans la base
    $sql="SELECT numUtil FROM UTILISATEUR WHERE identifiant='".$login."' AND mdp='".$mdp."';";
    $query = mssql_query($sql) or die('Erreur sur la requête' );

    // aucun utilisateur avec le compte et le mot de passe saisis
    if(mssql_num_rows($query)==0)
    {
        $libErr="Le pseudo ou le mot de passe est erroné";
    }
    else
    {
        $ligne = mssql_fetch_array($query);
        $type = $ligne["numUtil"];
        $_SESSION['login'] = $_POST['login'];
        $_SESSION['mdp'] = $_POST['mdp'];
        // On recherche les informations de l'utilisateur
        $sql="SELECT niveau, numAdresseSite FROM UTILISATEUR WHERE identifiant='".$_SESSION['login']."' AND mdp='".$_SESSION['mdp']."'";
        $query = mssql_query($sql);
        if(mssql_num_rows($query) != 0)
        {
          $row = mssql_fetch_array($query);
          $_SESSION['niveau'] = $row['niveau'];
          $_SESSION['numAdSite'] = $row['numAdresseSite'];
        }
          $connexion="oui";
          // vers la page d'entrée du site
          if(session_start())
          {
            echo("Connexion réussie");
            //header ("Location:accueil.php");
          }
          else
          {
            echo("Connexion échoué");
            //header ("Location:connexion.php");
          }
    }
}
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
</head>

<link rel="stylesheet" type="text/css" href="design.css"/>

  <form name="connexion" action="" method="post">
                        ----

                  Identifiant,
                  ,
             
              ----

                  Mot de passe,
                  ,
             
         

                        ----

                  ,
             
         

  </form>

<?php
echo $libErr;
?>

</html>

Rien de bien compliqué ...

Page accueil (qui contient les trois sous menu : connexion, admin, utilisateur) ==>
<?php
require("connectBDD.php");
start_session();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title></title>
</head>

<link rel="stylesheet" type="text/css" href="design.css"/>
<form name="monFormMenuGeneral" id="idFormMenuGeneral" method="GET" action="">

  

     
          <li>[index.php?page=connexion Connexion]</li>
     
 

  <?php
    if($_SESSION['niveau'] == '1')
    {
  ?>
 

     
          <li>[index.php?page=ajoutSite Ajouter site]</li>
     
     
            <li>[index.php?page=modifierBatiment Modifier batiment]</li>
     
     
            <li>[index.php?page=formulaireSite Supprimer batiment (ou son type)]</li>
     
     
            <li>[index.php?page=ajoutCompteur Ajouter compteur]</li>
     
     
            <li>[index.php?page=supprimerCompteur Supprimer compteur]</li>
     
     
            <li>[index.php?page=ajoutType Ajouter type]</li>
     
     
            <li>[index.php?page=supprimerType Supprimer type]</li>
     
     
            <li>[index.php?page=ajoutTypeBat Ajouter type a un site]</li>
     
     
            <li>[index.php?page=ajoutCout Ajouter cout]</li>
     
     
            <li>[index.php?page=supModifCout Modification/Supression cout]</li>
     
 

  <?php
    }
    if($_SESSION['niveau'] == '2')
    {
  ?>
 

     
          <li>[index.php?page=factureView Voir facture]</li>
     
 

  <?php
   }
   ?>

</form>

</html>

Mais y'a rien qui ne s'actualise ...
Ai je oublié un code pour que cela s'actualise ??

Je vous met ma page index au cas ou cela viendrait de la ...

<link rel="stylesheet" type="text/css" href="design.css"/>

   

      <?php
      require ("accueil.php");
      ?>
   

   

      <?php
      //if(session_start() != true)
      //{
       // require("connexion.php");
      //}
      //else
      //{
        require($_GET['page'].'.php');
      //}
      ?>
   

</html>

Un peu de bidouillage la aussi je dois avoué ^^

Merci d'avance a ceux qui me répondrons, car je me casse les dents la dessus depuis hier ...
Et je suis sure que l'un d'entre vous trouvera cette solution surement toute bete