Problème avec Require

Nashash
Invité n'ayant pas de compte PHPfrance

03 oct. 2005, 15:17

Bonjour,

je me retrouve confronté à un problème avec l'instruction require.

J'ai une page html avec un extension php (index.php) dans laquelle je fais appel à un fichier externe en php contenant les codes nécéssaires pour me connecter à ma base Mysql.

Mon souci est le suivant: la connection se fait parfaitement, le résultat est bon, mais avant le résultat il m'affiche ces quelques charactères 

Quel que soit le code que je place dans le fichier externe en php j'ai toujours ces signes.

Si je place le code directement dans le fichier html je ne rencontre plus aucun souci, mais par sécurité je ne peux mettre le contenu du fichier externe dans la page de base index.php

J'ai essayé de remplacer le require par un include mais je rencontre toujours le même problème.

Le code dans la page html:
 
<?php
require 'nom_du_fichier.php';
$query="SELECT Titre FROM Nouvelles";
$result = mysql_query($query) or die('Query failed : ' . msql_error($db));
$row = mysql_fetch_assoc($result);
echo $row['Titre'];
mysql_close($db);
?>

Le code dans le fichier externe est un classique appel à la base de donnée.

Qulqu'un sait-il se qui se passe ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 oct. 2005, 15:20

Fait voir le code dans le fichier nom_du_fichier.php en prennant le soin de camoufler le pass
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 28 Messages

03 oct. 2005, 15:21

tu n'as pas de message d'erreur.
Quelle est ta config php?
Peace on Earth

Mammouth du PHP | 1885 Messages

03 oct. 2005, 15:34

Remplace msql_error() par mysql_error()

msql_* est utilisé pour les bases de données mSQL et non MySQL.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Nashash
Invité n'ayant pas de compte PHPfrance

03 oct. 2005, 16:01

Voici le code du fichier externe:
<?php
$db = mysql_connect('xx.xx.xx.xx', 'xxxxx', 'xxxxx')
	or die('Could not connect : ' . mysql_error($db));
mysql_select_db('xxxxx',$db)
	or die('Could not select database');
?>
Sinon je n'obtiens aucun message d'erreur, juste ces signes placés juste avant le résultat (qui lui est bon de surcroît).

J'ai remplacé msql_error() par mysql_error() mais sans résultat.

Le pire c'est que si je place le code du fichier externe dans la page de base, les signes disparaissent et tout fonctionne de nouveau correctement. Mais dès que j'appelle le fichier externe les signes apparaissent. C'est vraiment les instructions require et include qui posent problème :?

Comme j'ai des pass dans le fichier externe je ne peux les intégrer dans le fichier de base bien entendu.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 oct. 2005, 16:05

Et si tu met cette ligne en commentaire, qu'est-ce qui se passe ?
echo $row['Titre'];
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

03 oct. 2005, 16:05

As-tu testé en faisant
 if(require(tonfichier)){
//instructions
}
Sinon change le nom de ton fichier :) il suffit parfois d'une broutille
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Nashash
Invité n'ayant pas de compte PHPfrance

03 oct. 2005, 16:05

Je rajouterais que j'ai utilisé Dreamweaver 4.0 pour créer la page html dans laquelle j'intègre le code php. Je ne sais pas si ça a de l'importance.

Invité
Invité n'ayant pas de compte PHPfrance

03 oct. 2005, 16:08

Et si tu met cette ligne en commentaire, qu'est-ce qui se passe ?
echo $row['Titre'];
J'obtiens ceci:

ďťżTitre 1



"Titre 1" est bon, c'est ce que j'attend, c'est tout ce qui est avant qui ne devrait pas s'y trouver.

J'essai de suite ce que tu proposes Mere-Teresa, la lumière viendra peut-être de tes louanges :)

Nashash
Invité n'ayant pas de compte PHPfrance

03 oct. 2005, 16:12

As-tu testé en faisant
 if(require(tonfichier)){
//instructions
}
Sinon change le nom de ton fichier :) il suffit parfois d'une broutille
J'ai essayé mes j'obtiens toujours le même résultat: ďťżTitre 1

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 oct. 2005, 16:17

J'obtiens ceci:

ďťżTitre 1
Je ne comprend pas comment est-ce que tu obtient ça en mettant le echo en commentaire ??? Peut tu éclairer ma lanterne ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

03 oct. 2005, 16:21

As-tu moyen de voir :
- le contenu de ta bdd ?
- le code source HTML de ta page ?

Les Z et autres me font penser soit à du copier/coller sous Dreamweaver, soit à du mauvais encodage de caractère (Mac/Windows/Unix).

Invité
Invité n'ayant pas de compte PHPfrance

03 oct. 2005, 16:32

J'obtiens ceci:

ďťżTitre 1
Je ne comprend pas comment est-ce que tu obtient ça en mettant le echo en commentaire ??? Peut tu éclairer ma lanterne ?
Ma foi si je le savais, j'arriverais peut-être à résoudre mon problème par la même occasion :)


As-tu moyen de voir :
- le contenu de ta bdd ?
- le code source HTML de ta page ?

Les Z et autres me font penser soit à du copier/coller sous Dreamweaver, soit à du mauvais encodage de caractère (Mac/Windows/Unix).
Oui je peux voir le contenu de ma bdd ainsi que le code source de ma page html dont voici la partie dans laquelle est inclu le code php:

Code : Tout sélectionner

... <tr> <td rowspan="7" colspan="4" valign="top" background="XXX.jpg"></td> <td rowspan="6" valign="top" height="438" background="XXX.jpg"> <?php require 'Fichier_Externe.php'; $query='SELECT Titre FROM Nouvelles'; $result = mysql_query($query) or die('Query failed : ' . mysql_error($db)); $row = mysql_fetch_assoc($result); echo $row['Titre']; mysql_close($db); ?></td> <td rowspan="7"><img name="XXX" src="XXX.jpg" width="19" height="489" border="0" alt=""></td> <td colspan="2" valign="top" background="XXX.jpg"></td> <td><img src="spacer.gif" width="1" height="129" border="0" alt=""></td> </tr> ...
Je ne sais pas si ça peut aider.

Nashash
Invité n'ayant pas de compte PHPfrance

03 oct. 2005, 16:40

Le gars ci-dessus qui oublie d'inscrire son pseudo c'est moi :oops:

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

03 oct. 2005, 16:49

[-X Le code source HTML c'est pas du PHP, c'est ce que tu vois dans ton navigateur :)
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.