Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zér0 > Les tutoriels > Officiels > Site Web > Lecture des commentaires

Vos commentaires sur :
Les includes

Retour au tutoriel

Vous devez être inscrit pour pouvoir poster des messages

Page : 1  2 
Pseudo Commentaire
Page : 1  2 
Hors ligne anas # Posté le 27/11/2005 18:44:25
boss avec patience et passion
Avatar
Groupe : Membres
oh les includes c'est eux qui mon pousser a étudiait le php

askilo
 
Hors ligne kyo_aux_yeux_de_demons # Posté le 12/01/2006 20:06:11
Ah Mako...
Avatar
Groupe : Bannis
Est-il possible de faire un include vers un site extérieur (lien type http://www.xxxxxx.xx absolu je crois)

Love MAKO !!!
 
Hors ligne Glaz # Posté le 25/03/2006 17:35:33
Groupe : Membres
La fonction :

<?php
$page = $_GET['page'];
include("$page.php");
?>

Me renvoie toujours cette erreur :


Notice: Undefined index: page in e:\test\index.php on line 10

Warning: main(.php): failed to open stream: No such file or directory in e:\test\index.php on line 11

Warning: main(): Failed opening '.php' for inclusion (include_path='.;E:\Serveurs\Web\EASYPH~1\\php\pear\') in e:\test\index.php on line 11


Je n'arrive pas a faire varier mes pahes appelés sur le corps de mon site, j'ai toujours cette erreur :(
Hors ligne falcon01 # Posté le 27/03/2006 22:06:16
Always NooB :-)
Groupe : Membres
Salut,

Une bonne méthode aussi pour se prémunir des attaques extérieures, est d'utiliser ceci...
Code : PHP
<?php
$page = preg_replace("/[^a-z0-9_ ]/i", "", $_GET['page']);

if(!@include($page))
        die("Cette page n'existe pas sur notre serveur, merci d'en informer le webmaster si ce problème persiste.");
?>


C'est vrai que j'arrive après la bataille, mais bon comme on dit: "Vaut mieux tard que jamais !"
Et si ca peut aider quelqu'un, ben pourquoi pas ;)

Image utilisateur
Image utilisateur
 
Hors ligne Orion # Posté le 09/04/2006 11:10:18
Avatar
Groupe : Membres
superbes ces tutos...

Ca ne sert à rien de réinventer la voiture.

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !

Albert Einstein
 
Hors ligne ctrop # Posté le 23/04/2006 20:49:17
Groupe : Membres
je voudrais savoir quelquechose : :(

Si mon site web est tout en php mais n'utilise pas de base de données => donc pas de mots de passe dans les pages php ( est ce qu il y a quand meme le risque de ce faire hacker ?


Bonne soirée
Hors ligne Alex # Posté le 29/04/2006 03:13:44
Big Brown Blue Bird
Avatar
Groupe : Membres
La faille possible est bien expliquée par contre je crois qu'il n'y a pas de quoi s'alarmer et qu'un simple :

Code : PHP
<?php
if (fopen($_GET['page'], 'r'))
{
   header('Location: erreur.php');
   die();
}
?>


ou quelque chose du genre inclu sur chaque page serait parfait :) .

Citation : Glaz
La fonction :

<?php
$page = $_GET['page'];
include("$page.php");
?>

Me renvoie toujours cette erreur :


Notice: Undefined index: page in e:\test\index.php on line 10

Warning: main(.php): failed to open stream: No such file or directory in e:\test\index.php on line 11

Warning: main(): Failed opening '.php' for inclusion (include_path='.;E:\Serveurs\Web\EASYPH~1\\php\pear\') in e:\test\index.php on line 11


Je n'arrive pas a faire varier mes pahes appelés sur le corps de mon site, j'ai toujours cette erreur :(


Tu dois définir la variable $page, comme cela :

Code : PHP
<?php
$page = $_GET['page'];
?>


Citation : ctrop
je voudrais savoir quelquechose : :(

Si mon site web est tout en php mais n'utilise pas de base de données => donc pas de mots de passe dans les pages php ( est ce qu il y a quand meme le risque de ce faire hacker ?


Bonne soirée


La réponse est oui, il n'y a pas que la base de données qui peut être susceptible de se faire hacker, tout ton site peut l'être. Par contre, il est plus terrifiant de dire "Il aura tout vos mots de passe" que "Il ouvrira les fichiers et en changera le contenu"... Si le chmod le permet, toutes les fonctions d'écriture/lecture de fichier (fopen, fwrite, show_source etc.) peuvent permettent de supprimer tout un site, et personnellement je crains bien plus cet aspect que celui de la base MySQL :D .
 
Hors ligne maitreimperial # Posté le 02/05/2006 20:56:38
Malin, malin et demi!
Avatar
Groupe : Membres
Super tuto, sans les include on ne peut rien faire en php!
 
Hors ligne lolotueur # Posté le 09/06/2006 17:46:40
Groupe : Membres
Est-ce que cette protection est efficace ?

Code : PHP
<?php
if (!isset($_GET['page'])) $page= 'menu'; else $page= $_GET['page'];
switch($page)
{
case 'menu': include ('menu.php');break;
}
?>
Hors ligne Guillawme # Posté le 18/06/2006 16:47:25
unity's rainbow
Avatar
Groupe : Membres
Salut M@teo21,
j'adore tes cours, si si :)
je viens de lire le chapitre sur la fonction include() : c'est très pratique.
Par contre je trouve que tu te compliques la vie avec ta méthode brutale :p
Un simple tableau associatif des pages autorisées pour l'inclusion suffirait à faire une protection assez solide je pense.
Par exemple : on associe un nom de page à son adresse

news => news.php

puis on envoi ce paramètre par url : <a href="index.php?page=news> et enfin avant l'inclusion on teste que $_GET['page']existe (avec isset) ET que le paramètre passé est bien dans le tableau associatif qu'on a défint plus haut.
Je n'ai pas fait le test mais en théorie ça marche.
J'espère que ça te fait plaisir de voir que tes p'tits zér0s ont de la ressource et de l'imagination :)
@ +

Absent jusqu'à la première semaine d'août.


Un problème en sciences ? Une question sans réponse ? Hypo-thèses.com :magicien:
Tout savoir sur les licences Creative Commons.
 
Hors ligne Guillawme # Posté le 18/06/2006 16:51:05
unity's rainbow
Avatar
Groupe : Membres
Ha lolotueur j'avais pas lu ta suggestion mais ça parait aussi bien que mon tableau associatif.
En tout cas le switch est bien adapté ici.
;)
@ +

Absent jusqu'à la première semaine d'août.


Un problème en sciences ? Une question sans réponse ? Hypo-thèses.com :magicien:
Tout savoir sur les licences Creative Commons.
 
Hors ligne Guillawme # Posté le 18/06/2006 17:15:29
unity's rainbow
Avatar
Groupe : Membres
Pour l'option avec switch après réflexion je la modifierai un peu :

Code : PHP

<?php
if (isset($_GET['page']) { // si le paramètre d'url existe on stocke sa valeur
     $page = $_GET['page'];
}
else { // sinon on crée quand même une variable mais vide
     $page = null;
}
switch ($page) {
     case 'news':
          $pageOk = 'news.php';
          break;
// etc etc avec toutes tes pages autorisées...

     default:
          $pageOk = 'accueil.php';
/* si la page appelée par url n'est pas dans la liste des pages autorisées on appelle l'accueil par défaut*/
}
include($pageOk);
?>


Ou alors la solution du tableau associatif :

Code : PHP

<?php
// on définit les pages autorisées dans le tableau
$pageOk = array('news' => 'news.php';
                'forum' => 'forum.php';)
// etc etc pour toutes les pages autorisées...

if (isset($_GET['page']) AND isset($pageOk[$_GET['page']])) {

// si le paramètre existe ET s'il est dans le tableau des pages autorisées
     
     include($page_appelee); // on appelle la page
}
else {
     // sinon on appelle l'accueil par défaut
     include('accueil.php');
}
?>


Maintenant faut voir laquelle des deux méthodes est la plus intéressante par rapport au nombre de lignes de code tapées (c'est M@teo21 qui dit qu'un développeur doit être flemmard :-° )
Sinon question sécurité ces deux codes sont équivalents je pense.
@ +

Absent jusqu'à la première semaine d'août.


Un problème en sciences ? Une question sans réponse ? Hypo-thèses.com :magicien:
Tout savoir sur les licences Creative Commons.
 
Hors ligne misoss # Posté le 22/06/2006 15:05:38
Groupe : Membres
Comment fait si on veut ke en clikan sur un lien on affiche une page ? e n ce servant de la fonction include biensur ^^

Image utilisateur
Image utilisateur
 
Hors ligne the-m # Posté le 24/06/2006 16:02:08
Groupe : Membres
héhéhé je vois que les développeurs d'orange.fr ont bien pensé à utiliser la façon "piratable". regardez donc ici http://www.orange.fr/bin/frame.cgi?u=http://www.google.com et essayez de changer http://www.google.com dans l'url.

J'avoue que c'est des frames pas des includes mais il reste un danger ^^ pirates à vos notepad++ :p !

Si j'ai posté dans un sujet d'aide qui n'a pas été résolu et semble abandonné, vous pouvez me demander de l'aide par MP car j'oublie tout le temps de repasser sur le forum ^^
 
Hors ligne Ysnipper011 # Posté le 21/08/2006 20:45:58
Groupe : Membres
misoss tu verras comment faire dans le cours des regex
Hors ligne Noix de Coco # Posté le 03/09/2006 08:49:41
Ah bon ?
Avatar
Groupe : Membres
Moi je me suis fait un ptit script pour pas avoir à chaque fois à taper if machin include machin :

Code : PHP
<?php
if (isset($_GET['rub']))
{
$get = $_GET['rub'];
if (is_file("$get.php"))
{
include "$get.php";
}
else
{
include "404.php";
}
}
else
{
include "accueil.php";
}
?>


Et ça marche ^^

Noix de Coco (<< mon blog)
 
Hors ligne nelson # Posté le 05/09/2006 18:33:50
Groupe : Membres
tu expliques bien par contre un petit truc que je ne comprends pas bien dans le but de l'include.
Pourquoi ne pas utiliser une balise <iframe..></iframe> ?
Car elle permet de faire revenir un menu aussi et en plus de ne pas devoir recharger la page si on l'a met comme "main".Ce qui va faire gagner du temps dans les changements de page .
Je débute en php et connais que html et css donc j'essaye de bien comprendre le but de cette fonction .

En parlant de l'iframe, est il possible de demander à ce que l'iframe diminu en fonction de la taille de la page.
Je m'explique, j'ai une page avec différent corp qui sont contrôler en css (le texte et un bloc droit)
Citation : css
#pageNav{
float: right;
width:178px;
padding: 0px;
background-color: #F5f7f7;
border-left: 1px solid #cccccc;
border-bottom: 1px solid #cccccc;
font: small Verdana,sans-serif;
}

#content{
padding: 0px 10px 0px 0px;
margin:0px 178px 0px 0px;
border-right: 1px solid #ccd2d2;
}}

Ce css contient toute la page de navigation avec le bloc droit
content est le texte affiché (appelé souvent : "main" )et pageNav le texte et un bloc droit


Ainsi mon bloc va se rapprocher vers le bord opposé si on diminu la largeur de la page, et l'iframe prendra plus de place que la place disponible soit un débordement.

Donc peut on imposer à ce qu'elle reste dans le css <div id="content"> ?

Je sais que sa demande sur css mais le sujet par des includes ;)
En ligne Thunderseb # Posté le 05/09/2006 21:00:22
La bière ? Chnafon !
Avatar
Validateurs
les iframe, mdr :D

On n'utilise plus ça depuis 10 ans :D les iframe sont invalides et pas pratiques du tout. c'est très mauvais pour l'accessibilité et le référencement ;)
 
Hors ligne nelson # Posté le 05/09/2006 22:04:50
Groupe : Membres
Ah oui :euh:
Mais comment faites vous alors pour afficher les pages sans recharger toute la page :waw:
Moi je trouve ça pratique car sa donne affiche bien et sa appel bien les pages . non ?
Hors ligne gwendal # Posté le 27/09/2006 21:01:21
Groupe : Membres
Bonjour,

Pour ma part, je préfère empêcher les include non souhaités en vérifiant si la page appartient à mon site :

//la page est de type $page='exemples/page_exemple.php'

<? @include_once($_SERVER['DOCUMENT_ROOT']."/".$page); ?>

En cas de tentative de hack, c'est une page vide qui s'affiche

A toute fin utile,
Gwen
Hors ligne benwater83 # Posté le 21/10/2006 14:29:35
Groupe : Membres
Merci pour ce tuto mais j'ai un soucis, j'ai hebergé d'abord mon site sur http://testobjectifplus.free.fr et ici aucun problemes, mes liens avec mes includes marches bien, j'ai voulu l'heberger ailleurs mais du coup, ils ne marchent plus sur http://objectifplus.redby.info/ je ne comprend pas...
Merci d'avance
Hors ligne numahel # Posté le 24/10/2006 22:17:47
Groupe : Membres
vraiment super ce tuto ... et le site entier !
perso je mettrais une fonction AfficheCorps qui ferait:

Code : PHP
function AfficheCorps($lracine,$lpage) {

echo "<div id=\"corps\">";
include ($lracine."contenu/".$lpage.".html");
echo "</div>";

}


appelée par la page index.php:
Code : PHP
AfficheCorps($racine,$page);


$racine est la racine du site (par exemple http://monserveur.com/monsite/)
$page la page envoyée dans l'url

du coup si on est hacké l'url envoyée risque d'être: http://monserveur.com/monsite/http://sitehack.com/hack.php et là forcément ça marche pas non ?

mais je retiens l'idée de vérifier l'existence du fichier ...
et j'avais oublié les variables d'environnement ...

numahel
 
Hors ligne maxxxe # Posté le 29/10/2006 00:48:31
Groupe : Membres
QUELLE BELLE FONCTION include!! LA tant attendue :D !
Merci pour ces tutos formidables!!!
A quand le livre sur le PHP? (^_^)

MaxXxe
 
Hors ligne Kyosphère # Posté le 03/11/2006 11:40:58
rien à dire
Avatar
Groupe : Membres
bien ce tuto, mais à dire: il y a aussi les fonctions include_once, require et require_once(même si c'est pareil, il faut bien le dire :p )

sitontontontonontontontontontonseratondu
 
Hors ligne komadori # Posté le 04/11/2006 18:37:42
vive le C !
Avatar
Groupe : Membres
franchement super ce tuto, avant je croyais qu'il fallait tout faire en css sur une seul page :)
Hors ligne Zimm i48 # Posté le 06/11/2006 20:29:45
Parés à virer ?
Avatar
Groupe : Membres
Ah enfin :magicien:
depuis le temps que je révais d'un moyen de faire ça.
Pour tout te dire, c'est (sans savoir qu'il y avait un moyen pour inclure les menus dans toutes les pages web mais en m'en doutant très fort) pour ça que j'ai décidé de me mettre à l'apprentissage du HTML.
Mateo, tu ne peut pas imaginer comme je l'espérais ce chapitre. ^^

J'en ai à peine commencé la lecture mais je te met 20 pour le coup.
o_O Oui Oui 20

EDIT: Et maintenant que j'ai tout lu, je n'aurai qu'une question:
Comment se fait-il que les pages ton site dont tu dis qu'il utilise les includes
soient d'extension .html ?

Rendez-vous sur Test-Pedago.fr, le site d'un projet libre de logiciels pour s'entraîner sur les tables de multiplication et les conjugaisons.


Wikiversité
 
Hors ligne bleucerise # Posté le 30/12/2006 10:06:40
Groupe : Membres
bonjour,super tuto merci.
j'ai tapé mes css dan ma page index, entre balises style puis mes includes haut, menu, corps de page, pied de page et quand j'apel une autre page avec l'exemple ci-dessu j'ai une page blanche et plus que ce site à ete ecris par mateo;
j'ai raté quelque chose mais comment
aide bien venue
Hors ligne Aniem # Posté le 04/01/2007 18:33:23
Avatar
Groupe : Membres
Super tutos M@teo ...

Par contre une tite remarque : cette protection ne suffit-elle pas tout simplement? :

Code : PHP

<?php
    $page = $_GET['page'];
    include("./$page.php");
?> 

En effet le ./ indique le dossier actuel si je ne me trompe pas, donc ainsi, une référence vers un site web comme par exemple http://www.google.com sortirait une erreur 404 (page non trouvée) car il chercherait à charger par exemple http://www.siteduzero.com/http://www.google.com
Hors ligne Snype # Posté le 20/01/2007 10:40:27
Groupe : Membres
J'ai pas compris pourquoi on ne peut pas inclure le haut, le menu, le corps et le bas (méthode "brutale" et "dangereuse" en même temps). Ce serait plus simple pour changer le site.
Hors ligne FrogT # Posté le 24/02/2007 00:20:26
Citation
Groupe : Membres
C'est très bien tout ça, merci beaucoup! Grâce à ces tutos j'ai beaucoup avancé, c'est un super geste vraiment!
Mon problème pour les includes est que tu n'expliques pas comment on peut changer l'include du contenu, en cliquant sur un lien dans l'include du menu! Quels codes doivent être tapés et où?
Merci d'avance!

Signature
 

Vous devez être inscrit pour pouvoir poster des messages

Retour au tutoriel

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | Fil RSS | XHTML 1.0 | CSS 2.0
Édité par Simple IT SARL : Nous contacter | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 473 Zéros connectés | Requêtes SQL 6 requêtes | Temps de génération de la page : Total (SQL) 0.0224s (0.0112s)