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

PHP & Base de données Discussion :

Ne pas traiter ce qui a été modifié sur l'URL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Par défaut Ne pas traiter ce qui a été modifié sur l'URL
    Salut
    mon probleme concerne l'url du site qui peut etre modifier, bien entendu, je ne permet pas de traiter n'importe quoi comme donnée sur l'url,
    enfait toutes les pages de mon site sont accessible via un menu dynamique, que je l'ai codé en php avec des classes menu, en utilisant une base de données qui contient les tables menu, et sous menu ..etc
    j'utilise des id pour spécifier le menu en cours, ces id sont des nombres
    je ne permet de se déplacer d'un lien à un autre que d'après verification de l'id du menu, qui doit etre nombre, et qui ne doit pas dépasser le nombre maximum des id que j'ai dans la table menu.
    jusque là bon ça ne me déplait pas trop, mais j'aime pas, parce que
    quand on s'amusera à modifier l'url, comme ça en sachant que cet id existe...etc
    le probleme c'est quand on tappe une valeur qui existe(un id qui existe sur une de ces pages)
    le sous menu se charge c'est bon, mais le contenu de la page garde toujours la même page,
    j'espere que c'est clair..
    mais bon, en bref, j'ai vu un exemple d'un site bien construit, et j'ai vu que même en changant de valeur dans l'url,
    par exemple si je modifie une variable qui se trouve dans l'url est qui contient un nombre quelconque, par un nombre quelconque, ça reste toujours sur la même page.
    j'ignore comment on peut faire ça
    alors, voilà j'aimerais avoir des idées sur ça

    Merci

  2. #2
    Membre éclairé
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Par défaut
    oui, je sais ce n'est pas assez clair
    mais bon, je poste mon code, après avoir longuement penser à ce probleme, il me reste à cacher les données cryptés que j'envoie sur l'url,
    le code suivant, permet bien de rester sur la même page, même après la modification, mais le probleme c'est que , si on modifie les données cryptés, ça lol ça fonctionne
    mais j'en suis pas toujours sure du résultat,
    je cherche comment je peux cacher, ces données cryptés, que j'envoie par url, voir si je peux utiliser un champs hidden ou autre...
    voilà :
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    <?php
     
        //this function enable us to connect to the database and retrieve data 
         //the query retrieves the values of the menu table
     
                 include('menu_connection.php');
     
                  $cx=new menu_connection();
                  $cx->SignIn();
     
                 // here we extract only the first link 
                  $cx->RequestData(" select * from menu ");
                  $result=$cx->ResultData();
                  $n=$cx->NumberRow();
                  $menu=new menu();
                  $submenu=new submenu();
                  $menu->retrieve_menu($result);
     
        if (!isset($_GET['menu_id']) || !is_numeric($_GET['menu_id']) || $_GET['menu_id']>$n )
     
                { 
                    $id=1; 
                      }
                    else
                         {
     
                     $id=$_GET['menu_id']; 
     
                              }
                            //$menu->show_menu($n,$id);
     
     
     
                  // traitement si l'id du menu était changé
                 if(isset($_GET['hash']) ) {
     
                //  echo $_GET['menu_id'].' '.$_GET['hash'].' '.md5($id);
     
                       if($_GET['hash']==md5($id))
     
                          { 
                               //  echo 'ok' ;
                                 }  
     
                               else 
     
                                    {  
                    $cx->RequestData(" select menu_id from menu where hash_id='".$_GET['hash']."'");
                    $result=$cx->ResultData();
                    foreach($result as $key)
                                        { 
     
                if(!is_numeric($_GET['menu_id']))
               { $id=1; } else {$id=$key['menu_id']; }
     
                                                }
     
                        // echo 'no'; 
     
                                    }
     
                } else  {   $_GET['hash']='c4ca4238a0b923820dcc509a6f75849b'; }
     
     
             $menu->show_menu($n,$id);
     
            echo '</ul><ul id="subnav">';
     
     
             //here we assign the submenus to their menu
     
             //we check if there is a value assigned to the variable that allows us to know which link we have activated      
             // if there's no value assigned to the variable, that help us to know which link, we stay in the default page
     
         if (isset($_GET['menu_id']) && is_numeric($_GET['menu_id']) && $_GET['menu_id']<=$n)
         {
     
          $id=$_GET['menu_id'];
     
                  }
     
     
     
     
            $cx=new menu_connection();
            $cx->SignIn();
            $cx->RequestData("SELECT menu_id ,submenu_id FROM sub_menu ");
            $n_s=$cx->NumberRow();
        /////::::::::::::::::::::::::::::::::::::::::::::::::::::
     
        ////////////////////////////////////// reverification de la valeur de l'url 
     
     
     
            ////////////////////////////////////////////:::::
            $hash="";
         if (isset($_GET['submenu_id']) && is_numeric($_GET['submenu_id'])&& $_GET['menu_id']<=$n_s )
         {
     
         $sid=$_GET['submenu_id'];
     
                }
                else
                  {
     
            $sid=1;
     
                    } 
     
                    if(isset($_GET['hash'])) {
     
                 $hash=$_GET['hash'];
                 if($_GET['hash']==md5($id))
     
                          { 
                               //  echo 'ok' ;
                                 }  
     
                               else 
     
                                    {  
                    $cx->RequestData("select menu_id from menu where hash_id='".$hash."'");
                    $result=$cx->ResultData();
                    $n=$cx->NumberRow();
                    //////////:echo $n;
                    foreach($result as $key)
                        { 
                    if(!is_numeric($_GET['menu_id']) || $n==0 )
                       { 
                      $id=1;  
                     $hash='c4ca4238a0b923820dcc509a6f75849b';
                     } else {$id=$key['menu_id'];  }
     
     
                                   }
     
     
                        $hash=md5(1);
     
     
                   }
     
     
            } else { $hash=md5(1); }
     
            ///:::::::::::::::::::::::::::::::::::::::
     
         // echo $hash;
     
          $cx->RequestData("select sub_menu.submenu_id,sub_menu.submenu_libel, sub_menu.submenu_url, menu.hash_id from sub_menu , menu where menu.menu_id=sub_menu.menu_id and  menu.menu_id=".$id."");
           $result=$cx->ResultData();
           $num=$cx->NumberRow();    
           $submenu->retrieve_submenu($result);
           $submenu->show_submenu($num,$sid,$id);
                 if($num==0)
                       {
                           $id=1;
                          // $hash=md5(1);
                          }
            $cx->cancel_connection();
     
     
                 ?>
    pour une bref explication..espérant que ça soit clair, la classe menu me permet de creer des liens, qui contiennent des données venant des deux tables, menu et sous menu, et en utilisant des a href, j'étais obligée d'utiliser des variables, que j'envoie par url
    voilà
    Merci

Discussions similaires

  1. Réponses: 21
    Dernier message: 19/05/2011, 16h03
  2. Servlets qui ne se modifie pas sur tomcat
    Par qiqiong dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 08/10/2010, 17h49
  3. Variable d'une boucle qui ne se modifie pas
    Par Erast dans le forum Débuter
    Réponses: 4
    Dernier message: 17/04/2010, 20h25
  4. Réponses: 4
    Dernier message: 08/03/2007, 21h00
  5. directx 9 ne veut pas s'installer<pas comme celui qui exi
    Par crazy windows dans le forum Ordinateurs
    Réponses: 5
    Dernier message: 14/02/2006, 17h50

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