Pseudo Frames avec titre de page

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pseudo Frames avec titre de page

par Fredy » 31 mai 2008, 16:20

Je l'ai teste mais ca marche toujours pas :(

par Invité » 27 mai 2008, 19:00

En fait ma remarque était un tout petit peu hors contexte...
Pour ton problème, regarde ce que donne en gros ton code si l'on considère que le include produit un seul fichier .php...
<?php
[...]

//définition de la varibale $titre_page<?php
if(isset($_GET["titre_page"])) $titre_page = $_GET["titre_page"]; 
else $titre_page = "Accueil";  


//on affiche la variable $titre page
echo $titre_page;

//on redéfini $titre_page (dans centre.php)
switch ($rubrique)  
{ 
case 'mapage1': 
include('page_1.php'); 
$titre_page = "titre page1"; 
break; 
case 'mapage2': 
include('page_2.php'); 
$titre_page = "titre page2"; 
break; 
case 'mapage3': 
include('page_3.php'); 
$titre_page = "titre page3"; 
break; 
default: 
include('accueil.php'); 
break; 
}


// et on affiche plus $titre_page...
?>
Tu t'aperçois qu'en fait du affiches ton titre avant de l'avoir redéfini...
ça ne peut fonctionner que de travers ;)

par Fredy » 26 mai 2008, 18:54

Sinon tu as compris le sens de ma remarque, ça fonctionne à présent?
J ai pas saisis ce que tu veux me signaler

par jojolapine » 24 mai 2008, 17:10

Sinon tu as compris le sens de ma remarque, ça fonctionne à présent?

par Invité » 24 mai 2008, 16:37

Oui bien sûr :), mais je te le signalais.
Merci HyWaN, je le metterais a la fin du code :)

par Hywan » 24 mai 2008, 15:09

Oui bien sûr :), mais je te le signalais.

par Fredy » 24 mai 2008, 14:44

Attention toutefois, si tu écris $titre_page = $_GET['titre']; et plus loin echo $titre_page;, il me suffit de donner la valeur <script>alert("Hopla');</script> à la variable titre, et j'ai trouvé une faille XSS. Ne reste qu'à lire les cookies et autre chose du genre.

Il faut donc que tu protèges tout ça :), i.e. vérifier les caractères contenus dans la chaîne, leur forme etc.
J'aimerais bien trouver la solution a comment recuperer les pages avant de passer au cote securite, pas a pas :)

par Hywan » 24 mai 2008, 11:00

Attention toutefois, si tu écris $titre_page = $_GET['titre']; et plus loin echo $titre_page;, il me suffit de donner la valeur <script>alert("Hopla');</script> à la variable titre, et j'ai trouvé une faille XSS. Ne reste qu'à lire les cookies et autre chose du genre.

Il faut donc que tu protèges tout ça :), i.e. vérifier les caractères contenus dans la chaîne, leur forme etc.

par jojolapine » 24 mai 2008, 10:34

Hello,
il ne faut pas récupérer ta variable de titre en GET, mais tout simplement en faisant $titre_page,
car ce code:
page1.php
<?php
$variable="valeur";
include('page2.php');
?>
page2.php
<?php
echo $variable; // et non $_GET['variable']
?>
équivaut à (en gros hein...)
<?php
$variable="valeur";
echo $variable;
?>
voilou ;)

par Fredy » 24 mai 2008, 08:31

Voila, j'ai mis mes 2 pages index.php et centre.php ainsi:

index.php:
<?php
if(isset($_GET["titre_page"])) $titre_page = $_GET["titre_page"]; 
else $titre_page = "Accueil";  

?>
<html>
<head>
       <title><?echo $titre_page;?></title>
</head>
<body>
<table border="0" cellpadding="0" cellspacing=0" width="100%">
<tr> 
<td> 
<?php include('menu.php'); //on insère la page avec le menu ?>
</td>
<td> 
<?php include('centre.php'); // on insère la page avec le site proprement dit ?>
</td>
</tr>
</table>
centre.php:
<?php 
// On récupère la rubrique passée en paramètre 
if(isset($_GET["rubrique"])) $rubrique = $_GET["rubrique"]; 
else $rubrique = "";  

// On affiche la page associée à la rubrique 
switch ($rubrique)  
{ 
case 'mapage1': 
include('page_1.php'); 
$titre_page = "titre page1"; 
break; 
case 'mapage2': 
include('page_2.php'); 
$titre_page = "titre page2"; 
break; 
case 'mapage3': 
include('page_3.php'); 
$titre_page = "titre page3"; 
break; 
default: 
include('accueil.php'); 
break; 
} 
?> 
Si la page page_1.php existe on l'inclu comme suivant: index.php?rubrique=mapage1 sinon on inclu accueil.php, jusqu a ce moment tout va bien, le seul probleme est que chaque page contient un titre, lors de l'affichage de la page selectionnee (par exemple page1.php) je dois avoir comme titre: titre page1.

Merci

par Patriboom » 22 mai 2008, 06:54

Dans ta référence à centre.php, il n'y a aucun passage de variable.
Ceci
<td> 
<?php include('centre.php'); // on insère la page avec le site proprement dit ?>
</td>
ne devrait-il pas être plutôt
<td> 
<?php include('centre.php?rubrique='.$rubrique); // on insère la page avec le site  proprement dit ?>
</td>
?

par Fredy » 22 mai 2008, 04:31

J'ai mis une petite erreur de saisie, j'ai change rubrique.php par centre.php, ca marche les frames mais sans titre

par Patriboom » 22 mai 2008, 03:03

Il n'y a aucune référence à rubrique.php dans index.php, il n'est donc pas possible de retrouver un quelconque traitement fait par rubrique.php

Il faudrait que rapporte ton traitement de ?rubrique=xyz dans ta page index.php puisque c'est à cette dernière page que réfère ton lien. Ou encore, il faudrait que dans ta page index.php il y ait un include("rubrique.php"); de façon à traiter tes attentes passées en paramètres.

Tant que ton lien mène à index.php?rubrique=xyz et que index.php ne réfère d'aucune façon à rubrique.php, jamais rubrique.php ne sera lu, jamais ce fichier ne traitera tes paramètres envoyés en $_GET

par Fredy » 21 mai 2008, 18:56

Quand je clique sur page_1.php je dois avoir index.php?rubrique=mapage1 avec le titre attribue a cette page qui est helloooo, mais en vain, il affiche le titre par defaut: Accueil

par Hywan » 21 mai 2008, 09:47

Hey :),

Et remarque très constructive : on écrit accueil et pas acceuil