Affiche menu après saisie et validation

Résolu
luxojr Messages postés 10 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 12 octobre 2011 - 28 déc. 2008 à 13:17
BiBloOo Messages postés 24 Date d'inscription samedi 9 février 2008 Statut Membre Dernière intervention 2 octobre 2015 - 12 févr. 2009 à 14:01
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

Noreaga10000 Messages postés 46 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 27 janvier 2009
29 déc. 2008 à 11:01
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.
3
luxojr Messages postés 10 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 12 octobre 2011
29 déc. 2008 à 16:26
Merci pour ta réponse, je vais essayer dans cette direction.
0
BiBloOo Messages postés 24 Date d'inscription samedi 9 février 2008 Statut Membre Dernière intervention 2 octobre 2015
12 févr. 2009 à 14:01
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
0
Rejoignez-nous