Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/01/2008, 19h45   #1
Membre actif
 
Avatar de witch
 
Mina Essabbeur
Inscription : mai 2007
Messages : 345
Détails du profil
Informations personnelles :
Nom : Mina Essabbeur
Âge : 25

Informations forums :
Inscription : mai 2007
Messages : 345
Points : 178
Points : 178
Envoyer un message via MSN à witch
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
__________________
You probably have a very easy job, the kind robots will be doing soon.
witch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2008, 16h38   #2
Membre actif
 
Avatar de witch
 
Mina Essabbeur
Inscription : mai 2007
Messages : 345
Détails du profil
Informations personnelles :
Nom : Mina Essabbeur
Âge : 25

Informations forums :
Inscription : mai 2007
Messages : 345
Points : 178
Points : 178
Envoyer un message via MSN à witch
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 :
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
__________________
You probably have a very easy job, the kind robots will be doing soon.
witch est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h53.


 
 
 
 
Partenaires

Hébergement Web