Un lien => Switch

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 : Un lien => Switch

par DarkSulfura » 31 mars 2008, 18:20

C'est Bon ^^J'ai trouvé, mes pseudos frames fonctionne correctement à présents. J'ai enlever les news dans ma page d'index ensuite j'ai mis le code php à la place et dans accueil.php j'ai mis mes news ensuite quand je fais les autres news sa s'affiche correctement à la place que je souhaiterai. En tout cas merci à toi/vous :p

par Ryle » 31 mars 2008, 17:08

Tu dis avoir créé les pages, mais lorsque je tente d'ouvrir les urls suivantes j'ai une erreur 404 :
http://www.darksulfura.monespace.net/Siteheberges.php
http://www.darksulfura.monespace.net/DarkAmis.php
http://www.darksulfura.monespace.net/Partenaire.php
à moins que ces pages ne soient placés dans des sous répertoires, mais dans ce cas là, leurs chemins complet est à prendre en compte dans ta white list, et pas seulement le nom de la page...

La page http://www.darksulfura.monespace.net/Tutoriaux.php semble bien exister, mais semble être une page complète (avec bandeau, etc. ... il ne devrait s'agir que du morceau de code html à intégrer dans ta page.. en gros que le bloc "Tutoriaux"...

Le principe des pseudos frames, c'est d'avoir l'entête, le menu, le pied de page, etc. dans un même script php (en général ton index) et de laisser un espace dans lequel seront inclus les portions de code des autres "pages" pour former la page html définitive.

par DarkSulfura » 31 mars 2008, 16:58

Regare jette un coup sur mon site :

http://www.darksulfura.monespace.net/

Dans la page d'index j'ai mis ce code :
  <?php

  // On définit le tableau contenant les pages autorisées
  // ----------------------------------------------------
  $pageOK = array('Tutoriaux' => 'Tutoriaux.php',
  				  'Siteheberges' => 'Siteheberges.php',
				  'DarkAmis' => 'DarkAmis.php',
				  'Partenaire' => 'Partenaire.php',
				  'Galerie' => 'Galerie.php',
				  'DarkInfo' => 'DarkInfo.php',
  				  'Ressources' => 'Ressources.php',
				  'accueil' => 'accueil.php',
                  'CreateSite' => 'CreateSite.php');

  // On teste que le paramètre d'url existe et qu'il est bien autorisé
  // -----------------------------------------------------------------
  if ( (isset($_GET['ds'])) && (isset($pageOK[$_GET['ds']])) ) {
    include($pageOK[$_GET['ds']]);   // Nous appelons le contenu central de la page
  } else {
    include('accueil.php');   // Page par défaut quant elle n'existe pas dans le tableau
  }

  ?>
Mais les pseudos frame ne fonctionnent pas, j'ai même créer les pages. Donc je ne sais pas comment faire fonctionner ces pseudo-frames :-k

par DarkSulfura » 28 mars 2008, 13:01

Sisi il fonctionne... Mais mon probleme n'est pas sa. Je veux savoir si c'était possible d'enlever les includes car quand je le fais, le code pour activer le pseudo fram marche plus :(

par Hywan » 28 mars 2008, 04:09

Et ton code ne fonctionne pas là ?

par DarkSulfura » 27 mars 2008, 19:54

Voici donc mon code :
<div class="entete" >
<?php 
  include('entete.htm');  // Nous appelons l'entete du site
?>
</div>
<div class="colonneGauche" >
<?php 
  include('menu.htm');   // Nous appelons notre menu
?>
</div>
<div class="colonneDroite">
<?php

  // On définit le tableau contenant les pages autorisées
  // ----------------------------------------------------
  $pageOK = array('news' => 'news.php', 
                  'downloads' => 'downloads.php',
                  'sitetest' => 'sitetest.php',
                  'accueil' => 'index.php');

  // On teste que le paramètre d'url existe et qu'il est bien autorisé
  // -----------------------------------------------------------------
  if ( (isset($_GET['act'])) && (isset($pageOK[$_GET['act']])) ) {
    include($pageOK[$_GET['act']]);   // Nous appelons le contenu central de la page
  } else {
    include('index.php');   // Page par défaut quant elle n'existe pas dans le tableau
  }

?>
</div> <div class="pied">
<?php 
  include('pied.htm');   // Nous appelons le pied de page
?>
</div> 
J'ai remplacé 'page' par 'act' :) Voila mon code c'est ça.
Donc je voudrais enlever les includes pour faire mon site plus simplement. Est-ce possible ? Si je rentre ton code ça marcherai ?

par Hywan » 27 mars 2008, 17:35

J'ai du mal à voir où est le problème. Montre voir ton code ?

Si le nom de ta page est paramétrée par une variable $_GET, alors :
$fichier = basename($_GET['page']);
require_once 'Page/' . $fichier . 'php';
C'est un sobre exemple, mais l'idée est là.

par DarkSulfura » 27 mars 2008, 17:28

Non oublie, j'ai trop demandé.

Parcontre je voulais savoir si on était obligé de mettre les "includes" dans les pseudos frames car je n'arrive pas à créer mon site avec les includes, enfin si mais ce n'est pas précis car je n'ais pas toute la page.

J'ai essayé de faire un test mais l'include de haut.php se repete sans arrêt ensuite j'ai un message d'erreur qui dit que le serveur apache c'est arrêter. :?

Il existe pas un moyen de créer un fichier de config et que toute les pages l'appelle pour utiliser la fonction GET ... Pour les pseudo frames ?

par DarkSulfura » 25 mars 2008, 17:45

Le fonctionement d'une base de donnée et comment l'utiliser sur des pages PHP.

Je jette un coup d'oeil sur ce site ..

par Hywan » 25 mars 2008, 16:47

Va jeter un œil du côté du SiteduZero.com, ils ont plus le temps que moi pour t'expliquer ça ;-). Tu peux également visiter PHPDebutant.org.

Mais si jamais, quelle partie aimerais-tu que je t'explique ?

par DarkSulfura » 25 mars 2008, 14:03

:boire4: Woooaaaa ... Le problème c'est que je mis connais rien en 'Base de donnée'.
T'aurais pas le bout de code de ce que tu vien de m'expliquer ? Car je pige la moitier...

par Hywan » 24 mars 2008, 22:45

Bonsoir et désolé pour la réponse tardive (occupé à pelleter ;-)),

tout d'abord : oui, ce n'est pas d'une grande clarté.
Sache que tu n'es pas obligé de préciser toutes tes pages dans un tableau. Tu peux très bien récupérer les valeurs des paramètres URL, tu les protèges (basename() & co.), et tu vérifies si le fichier existe (file_exists()). Si oui, alors on l'inclue, sinon, une erreur.

Il faut bien faire attention avec cette technique car il ne faut pas inclure n'importe quoi. Il faut retrouver le nom du fichier sans parcours de dossier (../ par exemple), ni extension (.php par exemple), et pas d'URL (http:// par exemple). C'est plus compliqué à protéger mais c'est plus facile à maintenir par la suite. Il faut vraiment imaginer tous les cas, même les plus fous (virer les caractères étranges, comme \0 etc.).

Il existe beaucoup de solutions à ce problème :).

Edit : sinon tu peux enregistrer toutes tes pages dans une base de données, c'est déjà plus facile à maintenir et c'est plus sécurisé (mais plus lent) :).

par DarkSulfura » 21 mars 2008, 23:26

Ok ça marche je vais me lancer dans le livre d'or alors :ordi:

Euh question, pour les pseudo frames, j'ai vu qu'il est obligé de mettre toute les pages dans le tableau array mais il existe pas un système ... Comment dire #-o ... Que dans un dossier nommé par exemple "modules" et que tout les sous-dossiers soit le titre.

Exemple :

Normalement dans le tableau array je dois mettre :
$pageOK = array('news' => 'news.php',
                          'accueil' => 'accueil.php');
etc.... ... .
Alors est-ce possible de faire en sorte, que tout les sous-dossiers de Module soit directement dans le tableau array. Celà m'évitera de les écrirent tous...
Exemple :
/modules/news/ - /modules/news/index.php =
index.php?page=news

le paramétre des pseudos frame cherche directement toute les pages dans le dossiers modules.
Si tu ne comprend pas, je vais essayé de mieux m'expliquer.

par Hywan » 21 mars 2008, 16:25

Ok Ok, t'aurais pas un tuto ? :-k
À vrai dire, non. Je n'y ai même jamais réfléchis. Mais si tu sais un livre d'or, tu sais faire ça. Tu récupères ton ID par URL, tu le protèges, tu fais une requête auprès de ta base de données etc. Toujours la même chose.
EDIT: Je voulai savoir si les pseudo frame (les codes) sur le tuto que m'as passé Truc sont valable pour la version php5 et 6 ?
Bien sûr que oui :). PHP 6 n'est pas prêt d'arriver, tu as encore un peu de temps devant toi.

par DarkSulfura » 21 mars 2008, 12:44

Ok Ok, t'aurais pas un tuto ? :-k

EDIT: Je voulai savoir si les pseudo frame (les codes) sur le tuto que m'as passé Truc sont valable pour la version php5 et 6 ?