include qui marche pas ? [PHP] - PHP - Programmation
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...
Marsh Posté le 25-03-2003 à 22:22:36
Je serais bien curieux de savoir quelles choses variables ne nécéssitent pas $
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?
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.
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
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.
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_*()
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.
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 ...
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...
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é
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
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...
Marsh Posté le 26-03-2003 à 17:15:24
MarcP a écrit : c'est pas une constante systeme |
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" ) ;
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
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é
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 , etc
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 ?