un petit coup de main pour une erreur de code

Eléphanteau du PHP | 25 Messages

12 nov. 2007, 16:27

c'est presque bon

Langue trouvée : esp
Fichier à inclure : lang/fr-lang.php


Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\multilangues\lang\decide-lang.php:5) in c:\program files\easyphp1-8\www\multilangues\lang\decide-lang.php on line 30


Notice: Use of undefined constant TXT_ACCUEIL_INDEX - assumed 'TXT_ACCUEIL_INDEX' in c:\program files\easyphp1-8\www\multilangues\index.php on line 11
TXT_ACCUEIL_INDEX
Meteo du jour :
Notice: Use of undefined constant TXT_METEO - assumed 'TXT_METEO' in c:\program files\easyphp1-8\www\multilangues\index.php on line 13
TXT_METEO
Conseil du jour :
Notice: Use of undefined constant TXT_CONSEIL_INDEX - assumed 'TXT_CONSEIL_INDEX' in c:\program files\easyphp1-8\www\multilangues\index.php on line 15
TXT_CONSEIL_INDEX


langue trouvée et Fichier à inclure : lang/fr-lang.php change bien quand je clique sur les drapeaux.

mais j'ai encore les message d'erreur ci dessus.

Mammouth du PHP | 19672 Messages

12 nov. 2007, 16:30

Pour le message d'erreur sur le header, il suffit de retirer l'affichage de débogage.

Ensuite, inspecte tes fichiers de langue afin de vérifier que tu y a bien défini les constantes manquantes.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 25 Messages

12 nov. 2007, 16:38

fichier fr-lang.php

Code : Tout sélectionner

<?php //--------------------------------------------------------- // index.php //--------------------------------------------------------- define('TXT_ACCUEIL_INDEX', 'Bienvenue sur PHP Débutant !'); define('TXT_METEO', 'Il fait un soleil radieux !'); define('TXT_CONSEIL_INDEX', 'Faites du PHP !'); //--------------------------------------------------------- // page1.php //--------------------------------------------------------- define('TXT_ACCUEIL_PAGE1', 'Bienvenue sur la page 1 du site PHP Débutant !'); define('TXT_CONSEIL_PAGE2', 'Installez Linux !'); //--------------------------------------------------------- // Fin //--------------------------------------------------------- ?>
fichier en-lang.php

Code : Tout sélectionner

<?php //--------------------------------------------------------- // index.php //--------------------------------------------------------- define('TXT_ACCUEIL_INDEX', 'Welcome on PHP Débutant !'); define('TXT_METEO', 'The sun is shining !'); define('TXT_CONSEIL_INDEX', 'Lets do some PHP !'); //--------------------------------------------------------- // page1.php //--------------------------------------------------------- define('TXT_ACCUEIL_PAGE1', 'Welcome on PHP Débutants first page !'); define('TXT_CONSEIL_PAGE2', 'Install Linux !'); //--------------------------------------------------------- // Fin //--------------------------------------------------------- ?>
fichier esp-lang.php

Code : Tout sélectionner

<?php //--------------------------------------------------------- // index.php //--------------------------------------------------------- define('TXT_ACCUEIL_INDEX', 'toto'); define('TXT_METEO', 'toto'); define('TXT_CONSEIL_INDEX', 'toto'); //--------------------------------------------------------- // page1.php //--------------------------------------------------------- define('TXT_ACCUEIL_PAGE1', 'toto'); define('TXT_CONSEIL_PAGE2', 'toto'); //--------------------------------------------------------- // Fin //--------------------------------------------------------- ?>
j'ai apparement bien defini mais constantes.

Mammouth du PHP | 19672 Messages

12 nov. 2007, 16:53

Ben là, je sais pas trop, j'ai recréé les fichiers en local, j,ai effectivement vu l'erreur une fois, mais impossible de la reproduire, tout semble fonctionner. Voici le fichier remis en forme :
<?php
/* On récupère la lange avec un ternaire... */
$lang = (isset($_GET['lang'])) ? $_GET['lang'] : ((isset($_COOKIE['lang'])) ? $_COOKIE['lang'] : substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));

/* On définit la langue du fichier à utiliser */
switch ($lang)
{
    case 'en':
        $fichier = 'en';
        break;
    case 'es':
        $fichier = 'esp';
        break;
    case 'fr':
    default:
        $fichier = 'fr';
        break;
}
/* Inclusion du fichier de langue */
$fichierlangue = './lang/'. $fichier .'-lang.php';

include_once($fichierlangue);

/* Enregistrement dun cookie pour conserver la langue choisie */
//définition de la durée du cookie (1 an)
$expire = 365*24*3600;
//enregistrement du cookie au nom de lang
setcookie("lang", $lang, time() + $expire);
?>
<html>
<body>
<table width="100" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><div align="center"><a href="?lang=fr"><img src="./images/Drapeau/fr.gif" width="21" height="13" border="0"></a></div></td>
    <td><div align="center"><a href="?lang=en"><img src="./images/Drapeau/eng.gif" width="21" height="13" border="0"></a></div></td>
    <td><div align="center"><a href="?lang=es"><img src="./images/Drapeau/esp.gif" width="21" height="13" border="0"></a></div></td>
  </tr>
</table>
<?php echo TXT_ACCUEIL_INDEX; ?>
<br>
Meteo du jour : <?php echo TXT_METEO; ?>
<br>
Conseil du jour : <?php echo TXT_CONSEIL_INDEX; ?>
</body>
</html>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 25 Messages

12 nov. 2007, 17:20

toujours la meme erreur c'est dingue.

:cry: :twisted:

Mammouth du PHP | 19672 Messages

12 nov. 2007, 17:23

Fais du ménage dans tes fichiers en supprimant les espaces inutiles et les lignes vides là où il y en a plus de 2 successives.

Comme je t'ai dit, je n'ai eu l'erreur qu'une seule fois et plus moyen de la reproduire depuis...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 25 Messages

12 nov. 2007, 17:33

j'ai fais du menage et changer de server au lieu de easyphp j'ai pris wamp.

nouveau message erreur.

TXT_ACCUEIL_INDEX
Meteo du jour : TXT_METEO
Conseil du jour : TXT_CONSEIL_INDEX

Mammouth du PHP | 19672 Messages

12 nov. 2007, 17:42

:shock:
Dis donc, est-ce que tes fichiers ont bien l'extension .php ????
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 25 Messages

12 nov. 2007, 17:45

oui oui extension php.

c'est quand meme hallucinant j'ai le meme code car c'est le tien que j'ai copié et chez toi ça fonctionne.

je suis maudit

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

12 nov. 2007, 17:57

S'il t'affiche le nom de la constante au lieu de sa valeur c'est que pour lui la constante n'a pas été définie. On peut donc supposer que l'include ne se fait pas correctement. Vérifies que les fichiers ont bien été inclu, que tes chemins sont bons, colle éventuellement des echo pour vérifier que tu rentres biens dans les fichiers, ...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 25 Messages

12 nov. 2007, 18:01

ok je regarde ça .

la je pars du boulo et je vois ça en rentrant encore merci de ta patience.

Invité
Invité n'ayant pas de compte PHPfrance

12 nov. 2007, 20:39

apparament je rentre bien dans l'include .

Warning: main(./lang/fr-lang.php): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\multilangues\lang\decide-lang.php on line 20

Warning: main(): Failed opening './lang/fr-lang.php' for inclusion (include_path='.;C:\PROGRA~1\EasyPHP1-8\\php\pear\') in c:\program files\easyphp1-8\www\multilangues\lang\decide-lang.php on line 20

./lang/fr-lang.php

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\multilangues\lang\decide-lang.php:20) in c:\program files\easyphp1-8\www\multilangues\lang\decide-lang.php on line 26

Eléphanteau du PHP | 25 Messages

12 nov. 2007, 20:51

je suis trop bete.

j'avais oublié <?php require_once('lang/decide-lang.php'); ?> au debut du fichier index.php

un grand merci pour le coup de main.

Mammouth du PHP | 19672 Messages

12 nov. 2007, 22:10

Avec un [Résolu] ce sera mieux ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

13 nov. 2007, 10:14

c'est ce que j'ai fais j'ai cliquer sur le bouton resolu.