Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/12/2010, 19h35   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2009
Messages : 45
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 45
Points : 12
Points : 12
Par défaut les liens et php avec les "include"

bonjour,
sur ma page principale (resto.php), j'ai:
Code :
1
2
3
4
5
<?
		if(!isset($Message) or $Message == "") $Message = 'accueil';
		$IsFileOk = include($Message.'.php');
		if (!$IsFileOk) include('accueil.php');
	?>
jusqu'ici tout est normal. Dans accueil.php, j'ai un lien-image:
Code :
<a href="resto.php?Message=entrees_froides" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('entrees froides','','images/bt_ent_fro_dwn.png',1)"><img src="images/bt_ent_fro.png" name="entrees froides" width="97" height="97" border="0" id="entrees froides" /></a>
En ce qui me concerne, tout est normal. Le lien pointe sur la page principale (resto.php) et inclue là où je lui demande "entrees_froides" (entrees_froides.php).

Mais, lorsque j'active ce lien, pas de message d'erreur, et il m'affiche toujours la page resto.php avec l'include "accueil.php". Pourquoi ?

merci de bien vouloir me répondre
pp_le_moko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2010, 20h31   #2
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Salut,

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$Message=isset($_GET['Message'])?$_GET['Message']:'';
if($Message=='')$Message='accueil';
 
$filename=dirname(__FILE__).DIRECTORY_SEPARATOR.$Message.'.php';
$IsFileOk=file_exists($filename);
if($IsFileOk){
	$IsFileOk=include($filename);
	if((!$IsFileOk)and($Message!=='accueil')){
		$filename=dirname(__FILE__).DIRECTORY_SEPARATOR.'accueil.php';
		$IsFileOk=include($filename);
	}
}
?>
?
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 15h54   #3
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Effectivement, il faut récupérer le paramètre passé en GET, les variables étant visiblement (et heureusement !) désactivées sur ton serveur.

Je dis heureusement ,parce que tu fais déjà quelque chose de très dangereux : il ne faut jamais inclure DIRECTEMENT un fichier dont le nom est passé dans l'url. C'est un des meilleurs moyens de se faire hacker !

Si tu ne veux pas gérer une liste de pages accessibles, tu devrais au moins tester que le fichier appelé existe à l'endroit voulu (avec file_exists), ce qui empêchera au moins l'exécution de scripts distants...

C'est la raison du code précédent (qu'il aurait été nécessaire de commenter, non )
__________________
  • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
  • Merci d'utiliser les balises de code (# dans l'éditeur)
  • Si votre problème est réglé, merci d'utiliser le bouton
S.N.A.F.U
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 17h30   #4
Candidat au titre de Membre du Club
 
Inscription : mars 2009
Messages : 45
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 45
Points : 12
Points : 12
Bonsoir,

Je suis tout à fait d'accord avec le dernier commentaire... Une explication s'imposait donc.
Le code seul (qui fonctionne parfaitement) méritait effectivement une explication. Merci à Snafu pour son intervention.
pp_le_moko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 17h38   #5
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Re,

C'est vrai que je suis avare (par flemme) en commentaires.

Promis, je vais faire un effort.
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h29.


 
 
 
 
Partenaires

Hébergement Web