Page 1 sur 1

sécurité pseudo-frame include passage variable

Posté : 11 juil. 2007, 22:14
par Tximiti
Bonjour,
Je sais que ce sujet a été mainte fois traité mais je n'y arrive pas. J'ai beau lire, relire et rerelire de la documentation depuis deux jours, sans compter les essais rien n'y fait !
Je sais qu'il y a d'autres méthodes que celles que j'ai utilisé car j'en ai essayé plussieurs mais j'ai préféré cette option aux switch et array car je risque d'avoir plus de 60 pages.
J'arrive à voir ma page par défaut (formation-opc) mais quand je clique sur le lien de mon menu rien ne s'affiche !
Mon site est déjà dans un autre site (je fais un stage dans une entreprise où je dois rendre un projet pour mon mémoire car l'entreprise vu mon niveau ne prendra pas mon site !..Mais si je pouvais progresser, ça serait bien !)
Structure du site :
Site de l'entreprise (http://mon site.com)
AGI(http://mon site.com/AGI/)
- index.php
- menu.php
- formation-opc.php
dossier include
- les pages de mon menu

Page index.php, en haut :
$page = ( isset($_GET['page']) ) ? $_GET['page'] : ''; // équivalent à if...else
$path = dirname(__FILE__).'/include/'; //dossier d'où dois être inclus le fichier
$extension = '.php'; //extension du fichier
$filename = $path.$page.$extension;
   if ( preg_match("#^[a-z0-9_-]+$#i",$page) )
   {
      $filename = $path.$page.$extension;
	  echo $filename;
         if (file_exists($filename))
         {
            $centre = $filename;
         }
         else
         {
           $centre = 'liste-formations.php'; // page d'erreur
         }
   }
   else
   {
      $page = 'formation-opc'; //page par défault 
      $filename = $path.$page.$extension; 
      $centre = $filename;
	  echo $centre;
	  }
Dans le body :
<body >
<div id="conteneur">
<div id="header"></div>
<div id="gauche">
<?php include("menu.php"); ?>
</div>
<div id="centre">
<center>
<?php
include($centre);	  
?>
</center>
</div>
<?php include("footer.php"); ?>
</div>
</body>
Un des liens de ma page menu.php :
<a href="index.php?filename=include&page=formation-introduction-reseaux.php">Introduction aux réseaux</a>
J'ai l'impression que c'est un souci de lien ou de chemin d'accès mais où ?
Et ma solution finalement, est-elle assez sécurisée ?
Si quelqu'un avait un peu de temps pour m'expliquer d'où vient mon souci je pourrais peut-être le résoudre...Merci d'avance à tous les curieux ! :wink:

Bon ben j'ai trouvé !
Mon lien n'était pas correct, il faut mettre :
index.php?page=formation-introduction-reseaux
Par contre, mon site est-il sécurisé ou pas suffisamment ?

Posté : 12 juil. 2007, 11:13
par Ryle
A priori, il ne faudrait pas que tu passes l'extension de la page dans ton lien, puisque tu l'ajoutes pas la suite.... :)

Posté : 12 juil. 2007, 11:14
par Tximiti
Je me suis rendue compte hier soir un peu tardivement ! Lol !Mais est-ce que mon site est bien sécurisé ?
Et mon back-office est fait aussi avec des pseudo-frames, j'ai utilis des sessions, mais est-ce suffisant ou faut-il que je le sécurise également (ce qui me semble plus juste) ?

Posté : 17 juil. 2007, 16:35
par Tximiti
Bonjour,
Alors voilà j'ai continué d'avancer, mais je voudrais savoir si ce que j'ai fait est correct. Bon bien sûr ce n'est pas un chef d'oeuvre, je m'exerce à réaliser un site conséquent avec la technique des pseudo-frames, et c'est pourquoi quelques avis ne seraient pas de trop !
En fait, dans ce site, il y a plusieurs catégories divisées en sous-catégories:
Formations
- formation A
- formation B
- formation C

Produits
- produit A
- produit B
- produit C

J'ai fait un menu avec par exemple des liens comme ça :

Code : Tout sélectionner

<a href="index.php?page=formations&id=1">Formation A</a> <a href="index.php?page=formations&id=2">Formation B</a> <a href="index.php?page=formations&id=3">Formation C</a> <a href="index.php?page=produits&id=1">Formation A</a> <a href="index.php?page=produits&id=2">Formation B</a> <a href="index.php?page=produits&id=3">Formation C</a>
Puis j'insère dans ma partie centrale, la page appelée au clic de la souris sur le menu.
En fait, j'ai une mise en forme différente pour chaque partie : formations, produits, etc...
Pour ma page formations, j'appelle le contenu de ma base de données correspondante à l'identité du lien que j'ai attribué.

page formations.php :
<?php
//connection au serveur:
require_once ("connection/connexionbd.php");
			
//requête SQL:
$sql="SELECT *
		FROM formation
		WHERE id_formations = '".$_GET['id']."'";
		
//exécution de la requête:
$requete = mysql_query( $sql, $connexion ) or die ('Erreur : '.mysql_error() ) ;
 
  //affichage des données:
  if( $row = mysql_fetch_array( $requete ) )
  {
  ?>
[...]
<tr>
                <td colspan="2" align="left" valign="middle" class="gdbarrecadreformation"><div class="soustitrehautcadreformation">Pr&eacute;sentation</div></td>
              </tr>
              <tr>
                <td colspan="2" align="left" valign="middle"> <div class="texteformation"><?php echo stripslashes ($row['presentation_formations']) ; ?></div></td>
              </tr>
Je voulais savoir si la méthode des liens pour relier à mes pages grâce à leur identifiant était correct et si au niveau sécurité c'était ce qu'il fallait.
J'ai vérifié en tapant une adresse dans ma barre URL après page= et cela semble sécurisé le site, mais comme je suis novice je préfèrerais quelques conseils....
Merci à tous ceux qui me liront et me répondront !
Et bonnes vacances pour les petits veinards !

....Personne pour me répondre....S'il-vous-plait....Une petite réponse...
J'ai essayé d'insérer un titre dynamiquement mais je n'y arrive pas...
J'ai seulement l'identifiant qui s'affiche comme titre car je le récupère par mon URL :
 if (file_exists($filename)) // Si ce fichier existe
         {
            $centre = $filename;// affiche au centre la page souhaitée
			$title = $_GET['id'];
         }
La seule manière que cela fonctionne, c'est de mettre tout le code de ma page formation sur ma page index.php..Mais ça ne m'arrange pas car quand je devrais faire ma requête pour les produits ça va se mélanger et être le bazar, non ?