Aller au contenu

includes dans includes = HIC !


Sujets conseillés

Posté

Bonjour,

Je développe un système pour faire des sites et les mettre à jour facile (pour moi)

et j'ai un problème.

Voici mes fichiers qui font une erreur :( :

Index.php

<?php 
include 'configuration.php';
?>

<html>
<head>
<title><?php echo $config_sitename; ?></title>
</head>
</html>
<?php include "templates/$config_templates/index.php";?>

templates/gt1/index.php

CODE
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<link rel="stylesheet" href="<?php echo $config_cheminabsolu; ?>/templates/<?php echo $config_templates; ?>/images/styles.css" type="text/css" />

</head>

<body>

<div id="HEADER">

<h1><a href="#"><?php echo $config_sitename; ?></a></h1>

<p>Build a better mousetrap and the world will beat a path to your door.</p>

</div>

<div id="NAVIGATION">

<div id="BUTTONS">

<a href="<?php echo $config_cheminabsolu; ?>"><img src="<?php echo $config_cheminabsolu; ?>/templates/<?php echo $config_templates; ?>/images/btn_home.gif" width="35" height="22" alt="Home" border="0"/></a>

<a href="mailto:<?php echo $config_mail; ?>"><img src="<?php echo $config_cheminabsolu; ?>/templates/<?php echo $config_templates; ?>/images/btn_mail.gif" width="35" height="22" alt="Email" border="0"/></a>

<a href="#"><img src="<?php echo $config_cheminabsolu; ?>/templates/<?php echo $config_templates; ?>/images/btn_login.gif" width="35" height="22" alt="Login" border="0"/></a>

</div>

<div id="TABS">

<ul>

<?php include "$config_cheminabsolu/includes/menuhaut.php";?>

</ul>

</div>

</div>

<div id="VISUAL">

<ul>

<li class="PhraseOne">Stop spending hours searching for business partners!</li>

<li class="PhraseTwo">Partner with us - your online helper!</li>

<li class="Button"><a href="#">FREE SIGNUP!</a></li>

</ul>

</div>

<div id="CONTENT">

<div id="LEFTBOX">

<h1>Site News</h1>

<div>

<p><span class="Date">04.12.06:</span> Hi! This is my first attempt to make a template which can be changed without Photoshop. </p>

<p><span class="Date">04.11.06:</span> I can't call this template very simple, but hope it will be helpfull for those who need a stylish straight design.</p>

<p><span class="Date">04.10.06:</span> This is a free web template, so you may use it in any way you wish... all I ask for is that you leave the "Design by GetTemplate.com" link in the footer of the site. Thanks.</p>

</div>

<h1></h1>

<div class="Last">

<ul>

<?php include "$config_cheminabsolu/includes/menugauche.php";?>

</ul>

</div>

</div>

<div id="TEXT">

<ul class="Path">

<li><a href="#">Home</a></li>

<li>Welcome</li>

</ul>

<?php include "$config_cheminabsolu/includes/centre.php"; ?>

</div>

</div>

<div id="FOOTER">

<div id="COPYRIGHT"><?php include "$config_cheminabsolu/includes/footer.php"; ?></div>

<div id="LINKS">

<ul>

<?php include "$config_cheminabsolu/includes/menubas.php"; ?>

</ul>

</div>

</div>

</body>

</html>

Centre.php

<?php

include '../configuration.php';

$composant = $_GET['com'];

if ($_GET['com']=='') {include "accueil.php"; exit;}

include "$config_cheminabsolu/composant/com_$composant/index.php";

?>

Merci d'avance VMichalak

Posté (modifié)

quand je fais :

http://127.0.0.1:8080/CMS/?com=contact (exemple)

sa ne m'affiche pas contact mais accueil.php donc centre.php ne reçoit pas mon GET :'(

Edit : Si je retire

if ($_GET['com']=='') {include "accueil.php"; exit;}

de centre.php sa m'affiche :

Warning: include(http://127.0.0.1:8080/CMS/composant/com_/index.php) [function.include]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in H:\fichier\serveur\PortableZMWS-0.8.15-fr-r01\PortableZMWS\ZMWS\_web.zmwsc\CMS\includes\centre.php on line 6

Warning: include() [function.include]: Failed opening 'http://127.0.0.1:8080/CMS/composant/com_/index.php' for inclusion (include_path='.;C:\php5\pear') in H:\fichier\serveur\PortableZMWS-0.8.15-fr-r01\PortableZMWS\ZMWS\_web.zmwsc\CMS\includes\centre.php on line 6

Modifié par Humanbomb
Posté

A mon avis c'est parce que le allow_url_include est mis à off (configuration par défaut sur Php 5.2.x)

Posté (modifié)

J'utilise PortableZMWS et quand je vais dans PHP.ini ya pas allow_url_include

Edit : j'ai ajouter sa :

[moi]
;allow_url_include=On

et sa marche toujours pas :'(

Modifié par Humanbomb
Posté

Hello,

dans le message d'erreur il y a un beau HTTP/1.0 404 Not Found ; donc l'url include est actif, mais l'adresse indiquée est fausse.

Par contre coté perfs l'URL include c'est généralement assez désastreux, es tu certain que ce soit ce que tu cherches à faire ?

Posté (modifié)

Ce que je veux faire c'est que dans le centre s'affiche un composant que j'ai sélectionner dans l'URL donc mon systeme est je pense bon :P mais le problème c'est que le centre.php ne reçoit pas les informations :

index.php ---include--->templates/gt1---include--->centre.php

La preuve est que quand le code de mon centre.php est égale à :

<?php
include '../configuration.php';
$composant = $_GET['com'];

include "$config_cheminabsolu/composant/com_$composant/index.php";
?>

et que mon url est égale à : index.php?com=contact

Le site m'affiche une jolie erreur :

Warning: include(http://127.0.0.1:8080/CMS/composant/com_/index.php'>(http://127.0.0.1:8080/CMS/composant/com_/index.php) [function.include]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in H:\fichier\serveur\PortableZMWS-0.8.15-fr-r01\PortableZMWS\ZMWS\_web.zmwsc\CMS\includes\centre.php on line 6

Warning: include() [function.include]: Failed opening 'http://127.0.0.1:8080/CMS/composant/com_/index.php' for inclusion (include_path='.;C:\php5\pear') in H:\fichier\serveur\PortableZMWS-0.8.15-fr-r01\PortableZMWS\ZMWS\_web.zmwsc\CMS\includes\centre.php on line 6

Dans cette erreur vous aurez surement remarquer que ma variable n'est pas vu :

Warning: include(http://127.0.0.1:8080/CMS/composant/com_/index.php) [function.include]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in H:\fichier\serveur\PortableZMWS-0.8.15-fr-r01\PortableZMWS\ZMWS\_web.zmwsc\CMS\includes\centre.php on line 6

Sur la parti en rouge on voit que ma variables ne marche pas

Par contre quand mon centre.php est démarrer tous seul sa marche :'(

Merci d'avance

Humanbomb

Modifié par Humanbomb
Posté

Bah tu repasses par Apache, il s'agit donc d'une autre instance du script, et les variables ne sont évidement pas transmises.

Tu fais un : include "$config_cheminabsolu/composant/com_$composant/index.php";

Alors que la variable $config_cheminabsolu est un chemin "externe", à coup de HTTP et compagnie.

Pourquoi ne pas faire directement un : include "$VRAI_CHEMIN_DU_FICHIER/composant/com_$composant/index.php"; ?

Posté (modifié)

Ce code me servira pour faire plusieurs site je veux pas à avoir à refaire tous le code :smartass:

Voici le code de configuration.php si sa peut vous aider ;) :

<?php
$config_sitename = 'HumanbombConcept';
$config_cheminabsolu = 'http://127.0.0.1:8080/CMS';
$config_dbhost = 'localhost';
$config_dbuser = 'root';
$config_dbpass = '123';
$config_dbbase = 'cms';
$config_offline = '0';
$config_offlinemessage = 'Notre site internet est en cours de maintenance merci de revenir plus tard';
$config_erreurmessage = 'Nous sommes désolé mais le site internet est down';
$config_mail = '*CENSURER*';
$config_templates = 'gt1';
?>

Modifié par Humanbomb
Posté (modifié)
Ce code me servira pour faire plusieurs site je veux pas à avoir à refaire tous le code :smartass:

euh... il dit qu'il voit pas le rapport :S

Y a peut être un truc que j'ai pas pigé dans ta démarche, mais je ne vois vraiment pas dans quel cas pratique un include via HTTP est nécessaire.

EDIT : si c'est le chemin "d'installation" de ton CMS que tu cherches, tu dois bien avoir un fichier "commun" à la racine de celui ci, dans ce cas il te suffit d'y placer dirname( __FILE__ ) pour avoir ton chemin d'installation.

Modifié par Kioob
Posté

Pourtant le problème est exactement là : à chaque fois que tu utilises $config_cheminabsolu pour un include, les variables ne sont pas transmises.

Posté (modifié)

J'ai remplacer mes $config_cheminabsolu par des ./ et ../

Et ce marche

Merci Kioob :thumbsup::!:

Juste une autre petite question comment fait on pour modifier juste un caractères précis dans un fichier texte ?

Merci d'avance

Humanbomb

Modifié par Humanbomb
Posté

Via php ? je suppose que oui

tu peux faire un file_get_contents($fichier) stocker ça dans une variable puis faire un str_replace, ensuite il te suffit de faire un echo de cette même variable mise à jour..

si tu utilise un moteur de template tu dois avoir 2 moyens de faire une sortie graphique, soit avec une méthode display soit avec une méthode qui te retourne le contenu à afficher auquel cas tu peux y faire les modification que tu souhaite, toujours via str_replace ou ereg_replace

Cordialement, Kent

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...