[PHP] include qui marche pas ?

include qui marche pas ? [PHP] - PHP - Programmation

Marsh Posté le 25-03-2003 à 17:08:23    

Salut !
Je ne pige pas, j'ai un includes qui foire, mais c'est tres space (ou alors chui fatigué !)
voila le code :
 
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php';);
echo (DIR_WS_INCLUDES . 'header.php';);?>
<!-- header_eof //-->
evidemment, tout le code au dessus et au dessous passe bien
dans le source de la page resultat j'ai ca :
<!-- header //-->
includes/header.php<!-- header_eof //-->
le rep est bon, vu que d'autres fichiers en viennent aussi
les droits sont bons aussi (755)
une idée ou une piste ?
 
 :jap:

Reply

Marsh Posté le 25-03-2003 à 17:08:23   

Reply

Marsh Posté le 25-03-2003 à 22:18:40    

et les $ devant les variables c'est pour les chiens ?

Reply

Marsh Posté le 25-03-2003 à 22:20:45    

le problème n'est pas la.
Et améliore tes connaissances en PHP, le $ n'est pas obligatoire quand ce n'est pas une variable... ;)

Reply

Marsh Posté le 25-03-2003 à 22:22:36    

Je serais bien curieux de savoir quelles choses variables ne nécéssitent pas $ :)

Reply

Marsh Posté le 25-03-2003 à 22:23:06    

et il te met un message d'erreur ou c'est juste que t'as pas accès à ce qu'il y a dans ton fichier include?

Reply

Marsh Posté le 25-03-2003 à 22:40:04    

je n'y ai pas acces !
et quand j'ai repris la sauvegarde du fichier inclus (juste fais un copier coller du contenu du fichier inclus) ca a remarché !
Je pense à un bug de php (le require est en pré-processing, donc pas de pb de syntaxe). Je vais essayer de trouver d'ou ca vient et de le reproduire.

Reply

Marsh Posté le 25-03-2003 à 22:43:29    

Skylight a écrit :

Je serais bien curieux de savoir quelles choses variables ne nécéssitent pas $ :)


déja entendu parler de constantes ? ;)
http://www.php.net/manual/fr/language.constants.php
je dis ca comme ca, mais c'est un des premiers trucs à apprendre, utiliser une constante quand c'est possible : c'est + performant, ca évite les conneries et c'est plus propre ;)

Reply

Marsh Posté le 25-03-2003 à 22:44:24    

Skylight a écrit :

et les $ devant les variables c'est pour les chiens ?


voila :  
 Il y a des différences entre les constantes et les variables :
 
    *
 
      Les constantes ne commencent pas par le signe ($);
    *
 
      Les constantes sont définies et accessibles à tout endroit du code, globalement.
    *
 
      Les constantes ne peuvent pas être redéfinies ou indéfinies une fois qu'elles ont été définies.
    *
 
      Les constantes ne peuvent contenir que des scalaires.  
avant de répondre aggrésivement, maitrise un peu le sujet stp.

Reply

Marsh Posté le 25-03-2003 à 22:50:51    

OK :jap:
je savais pas que le php contenait des constantes :o

Reply

Marsh Posté le 25-03-2003 à 22:55:27    

[:the radec]   [:yaisse2] :lol: :hello:

Reply

Marsh Posté le 25-03-2003 à 22:55:27   

Reply

Marsh Posté le 25-03-2003 à 23:32:05    

Aucun rapport d'erreurs?

Reply

Marsh Posté le 25-03-2003 à 23:35:36    

aucun ! comme si il ignorait le fichier !

Reply

Marsh Posté le 25-03-2003 à 23:41:35    

il serait pas vide ton fichier par hazard?

Reply

Marsh Posté le 26-03-2003 à 00:01:27    

non !

Reply

Marsh Posté le 26-03-2003 à 00:53:25    

tu veux pas afficher ton header.php

Reply

Marsh Posté le 26-03-2003 à 01:09:12    

+1 (montre ton source de header.php)
 
y a-t'il au moins un echo dans ton header.php ?
utilises tu les fonctions ob_start(), ob_*()


---------------
...oups kernel error...
Reply

Marsh Posté le 26-03-2003 à 10:31:12    

Apres resolution du problème :
Ca viens pas du fichier header, mais du fichier inclus, a priori son contenu passait pas !
Rien pigé, car c'est du préprocessing, meme si je met des conneries il est pas censé y faire attention
Je pense que par hasard dans le fichier include a du se trouver une chaine qui fait planter le parseur, je vois pas d'autre explication.
(Si je suis reticent à donner mon code c'est que je suis sous contrat avec le client, ca doit rester "secret" jusqu'à la sortie du site.)
Mais il ne contient que du code et du HTML !
j'ai repris l'original du fichier, avant mes dernières modifs et ca passe bien ! Je vais essayer de voir quelle modif l'a fait planter, mais la j'ai rajouté des tonnes de trucs depuis hier soir, ca passe sans pb.

Reply

Marsh Posté le 26-03-2003 à 10:36:30    

<table border="0" width="100%" bgcolor="#000000" cellspacing="0" cellpadding="0">
  <tr class="header">
    <td valign="middle" bgcolor="#FFFFFF"><center><?php echo '<a href="' . tep_href_link(PAGE_ACCUEIL) . '">' . tep_image(DIR_IMAGES . 'site/biglogo.png', NOM) . '</a>'; ?></td>
   <!-- <td align="right" valign="bottom" bgcolor="4364DD"><!--?php echo '<a href="' . tep_href_link(FILENAME_ACCOUNT, '', 'SSL';) . '">' . tep_image(DIR_IMAGES . 'header_account.gif', HEADER_TITLE_MY_ACCOUNT) . '</a>  <a href="' . tep_href_link(FILENAME_CART) . '">' . tep_image(DIR_IMAGES . 'header_cart.gif', HEADER_CONTENTS) . '</a>  <a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL';) . '">' . tep_image(DIR_IMAGES . 'header_checkout.gif', HEADER_CHECKOUT) . '</a>'; ?>  </td>-->
 </tr>
</table>
<table align="center">
<colgroupe>
<!--<table border="0" width="100%" bgcolor="#4364DD" cellspacing="0" cellpadding="1">
  <tr class="headerNavigation">
    <td class="headerNavigation">  <?php //echo $breadcrumb->trail(' &deb_nav; ';); ?></td>
    <td align="right" class="headerNavigation"><?php //if (tep_session_is_registered('customer_id';)) { ?><a href="<?php //echo tep_href_link(FILENAME_LOGOFF, '', 'SSL';); ?>" class="headerNavigation"><?php //echo HEADER_TITLE_LOGOFF; ?></a>  |  <?php } ?><a href="<?php //echo tep_href_link(FILENAME_ACCOUNT, '', 'SSL';); ?>" class="headerNavigation"><?php // echo HEADER_TITLE_MY_ACCOUNT; ?></a>  |  <a href="<?php //echo tep_href_link(FILENAME_SHOPPING_CART); ?>" class="headerNavigation"><?php //echo HEADER_TITLE_CART_CONTENTS; ?></a>  |  <a href="<?php //echo tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL';); ?>" class="headerNavigation"><?php //echo HEADER_TITLE_CHECKOUT; ?></a>   </td>
  </tr>
</table>-->
<?php
  if (isset($HTTP_GET_VARS['error_message']) && tep_not_null($HTTP_GET_VARS['error_message'])) {
?>
<table border="0" width="100%" bgcolor="#4364DD" cellspacing="0" cellpadding="2">
  <tr class="headerError">
    <td class="headerError"><?php echo urldecode($HTTP_GET_VARS['error_message']); ?></td>
  </tr>
</table>
<?php
  }
 
  if (isset($HTTP_GET_VARS['info_message']) && tep_not_null($HTTP_GET_VARS['info_message'])) {
?>
<table border="0" width="100%" bgcolor="#4364DD" cellspacing="0" cellpadding="2">
  <tr class="headerInfo">
    <td class="headerInfo"><?php echo $HTTP_GET_VARS['info_message']; ?></td>
  </tr>
</table>
<?php
  }
?>
 
 
avec ce contenu la, ca passe pas (l'accolade ?)
bcp de code est commenté, je fesais des essais sur la mise en page
toutes les variables et constantes sont ok.
Si qqun a une idée ...

Reply

Marsh Posté le 26-03-2003 à 11:45:27    

oulala pas trop lisible tout ça :( la prochaine fois entoure le des balises [ code ] [ /code ] (sans les espaces)
 
normalement un include qui produit une erreur doit l'afficher sauf
- si tu as mis un @ devant l'include ou le require (@include ou @require)
- si tu as désactiver l'affichage des erreurs... (logique)
 
pour tester simplement, affiche directement le fichier dans ton browser (http://localhost/ton_rep/header.php), mais étant donné que tu y fais référence à des fonctions, j'ai peu d'espoir que les erreurs soient les bonnes, mais qui sait...


---------------
...oups kernel error...
Reply

Marsh Posté le 26-03-2003 à 13:42:01    

non, mais normalement le require recopie le fichier SANS S'OCCUPER DU CONTENU (dixit la doc) donc en cas d'erreurs elles sont affichées apres. or la, le contenu est pas recopié :/

Reply

Marsh Posté le 26-03-2003 à 14:28:52    


DIR_WS_INCLUDES  
 
C'est une constante système pour définir le répertoire include ? comment l'initialiser, la modifier ??  
 
Merci

Reply

Marsh Posté le 26-03-2003 à 14:57:18    

c'est pas une constante systeme ;)
Si tu veux faire une constante systeme en plus, ben dans php.ini t'as moyen de rajouter un fichier chargé a chaque appel de PHP => tu la met dedans.
Pour définir une constante j'ai posté le lien quelques post au dessus...

Reply

Marsh Posté le 26-03-2003 à 17:15:24    

MarcP a écrit :

c'est pas une constante systeme ;)
Si tu veux faire une constante systeme en plus, ben dans php.ini t'as moyen de rajouter un fichier chargé a chaque appel de PHP => tu la met dedans.
Pour définir une constante j'ai posté le lien quelques post au dessus...


 
non, c'est pas un DEFINE que j'aimerais pouvoir faire.
 
ce que j'aimerais, c'est que ou que je me trouve sur le site (répertoire racine / sous-répertoire)
 
je trouve mon répertoire d'include et d'image simplement, relativement au chemin ou je me trouve
 
inc/connect.php
 
dans le fichier /index.php :
include("inc/connect.php" ) ;
 
j'aimerais pouvoir utiliser la même ligne dans un fichier qui se trouverais dans  
 
sourep/index.php
 
au lieu de devoir faire include("../inc/connect.php" ) ;
 
 
 
 
 
 
 
 

Reply

Marsh Posté le 26-03-2003 à 22:15:11    

relis ce que je t'ai mis, ca suffit parfaitement, tu met juste un require en haut du fichier ;)

Reply

Marsh Posté le 26-03-2003 à 23:32:22    

MarcP a écrit :

relis ce que je t'ai mis, ca suffit parfaitement, tu met juste un require en haut du fichier ;)


 
euh... non désolé

Reply

Marsh Posté le 27-03-2003 à 10:27:52    

tu vas dans php.ini
tu lui met une ligne pour qu'il charge a chaque script un fichier "toto.php"
dans toto.php, tu definis tes constantes qui seront utilisées dans tous les autres scripts ;)
ca te permet aussi de mettre des fonctions type BAN-IP, stats avancées, temps de génération de la page (on peut aussi ajouter un fichier à la fin), pub :D , etc ;)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed