include et gestion d'erreurs

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 : include et gestion d'erreurs

Re: include et gestion d'erreurs

par Boc07 » 17 oct. 2010, 19:18

Les fichiers existent bien, et sont chargés sans problème si je ne fais pas le test avec file_exists...
Les url sont du type ?page=machin.html
Merci d'avoir pris le temps de vous penchez sur mon problème...

Re: include et gestion d'erreurs

par Cyrano » 17 oct. 2010, 13:10

Peut-être qu'effectivement le fichier n'existe pas... là où tu le cherches. file_exists va chercher dans le même répertoire que celui contenant le code en cours d'exécution. Si le fichier à rechercher est ailleurs, il faut indiquer le chemin.

J'ai aussi un doute : est-ce que ton paramètre dans l'url ressemble à « page=mapage » ou bien à « page=mapage.html » ?

Re: include et gestion d'erreurs

par xTG » 17 oct. 2010, 12:48

Cela me chiffone que tu dises que cela ne fonctionne pas.
Car si le include fonctionne avec un chemin file_exists devrait aussi fonctionner avec ce même chemin.
On ne peut inclure un fichier qui n'existe pas. ;)

Re: include et gestion d'erreurs

par Boc07 » 17 oct. 2010, 11:38

Merci pour la réponse !
J'ai essayé avec file_exists, mais ça ne fonctionne pas :
 if(!empty($_GET['page']))
  {
if (file_exists($_GET['page']))
{
           include($_GET['page']);
    }
else
{
          include(erreur.html);
}
    else
  {
    // Non, on affiche la page d'accueil par défaut
    include('default.html');
  }
dans ce cas, le script donne à chaque fois la page d'erreur...

Re: include et gestion d'erreurs

par Ryle » 17 oct. 2010, 09:55

Avant l'include, tu peux tester si le fichier que tu veux inclure existe ou non avec file_exists() :) (et donc gérer lorsque celui-ci n'existe pas :))

Je suis pas un fan des listes de pages autorisées qu'il faut systématiquement mettre à jour, mais par contre un peu de sécurité ne fait pas de mal. Du coup dans la mesure du possible je contrôle la valeur passée par l'utilisateur avant d'inclure le fichier pour m'assurer qu'elle ne contient pas de "http", "../", etc. qui lui permettrait d'inclure des pages tiers ou de se balader dans mon arborescence et d'ouvrir n'importe quel fichier :)

include et gestion d'erreurs

par Boc07 » 17 oct. 2010, 09:46

Bonjour,
Je rencontre des soucis avec la fonction include.
J'ai essayé de sécurisé le site à l'aide de set_include_path (trop de pages pour que je les autorise une par une).
Le code est le suivant :
<?php
	//definition des includes
set_include_path('rep1'.PATH_SEPARATOR.'rep2'.PATH_SEPARATOR.'rep3'.PATH_SEPARATOR.'rep4'.PATH_SEPARATOR.'rep5'.PATH_SEPARATOR.'rep6'.PATH_SEPARATOR.'rep7'.PATH_SEPARATOR.'rep8');
//fin definition des includes
 
  if(!empty($_GET['page']))
  {
           include($_GET['page']);
    }
    else
  {
    // Sinon, on affiche la page d'accueil par défaut
    include('default.html');
  }
?>
Pas de souci de ce côté là, mais je voudrais que si on appelle une page qui n'existe pas, on soit renvoyé sur une page d'erreur 404 personnalisée, plutôt que d'afficher le warning... J'ai essayé avec un file_exists, mais dans ce cas, le site ne charge plus aucune page et renvoie à chaque fois sur la page d'erreurs...
Je suis preneur d'une idée pour me dépanner... !
Merci d'avance !

Christophe