Pb d'include

Pb d'include - PHP - Programmation

Marsh Posté le 15-05-2007 à 12:12:07    

Je vais essayer d'être clair.  
 
J'ai un site www.site.com (c'est un exemple)  
 
avec dedans index.php head.php et foot.php  
 
dans head.php j'ai :  
PHP:

Code :
  1. <!DOCTYPE HTML SYSTEM>
  2. <html>
  3. <!-- Date de création : 18 août 2004 -->
  4. <!-- Date de dernière modification (approximatif) : 15 juin 2005 -->
  5. <head>
  6. <title>TOTO.COM</title>
  7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  8. <meta name="date-creation-yyyymmdd" content="20040818">
  9. <meta name="robots" content="index,follow,all">
  10. <meta http-equiv="content-style-type" content="text/css">
  11. <link rel="STYLESHEET" type="text/css" href="/style.css">
  12. </head>
  13. <body bgcolor="#FFFFFF" text="#000000" link="#333333" vlink="#666666" alink="#666666" rightmargin="0" topmargin="0" bottommargin="0" leftmargin="0" onResize="window.location=window.location;">
  14. <!-- ------------------------------------ -->
  15. <!--               Entête                 -->
  16. <!-- ------------------------------------ -->
  17. <tr valign="top">
  18.  <td height="150">
  19.   <table width="100%" border="0" cellspacing="0" cellpadding="0">
  20.    <tr>
  21.     <td width="75%">  
  22.     <a href="/"><img src="entete01.jpg" border="0" alt="Accueil" height="150"><img src="entete02.jpg" border="0" alt="Accueil" height="150"><img src="entete03.jpg" border="0" alt="Accueil" height="150"><img src="entete04.jpg" border="0" alt="Accueil" height="150"></a>
  23.     </td>
  24.     <td width="25%" align="right">
  25.      <table width="180" height="150" align="right" bgcolor="#3860c0" valign="top">
  26.    </table>
  27.     </td>
  28.    </tr>
  29.   </table>
  30.  </td>
  31. </tr>
  32. <tr>
  33. ........

 
 
Ensuite dans Foot.php juste du texte commun a toute les pages  
 
et dans Index.php j'ai :  
PHP:

Code :
  1. <?php include 'head.php'; ?>
  2. ......
  3. <?php include 'foot.php'; ?>


 
Voilà, sauf que j'ai trouver un Lecteur de news en php, a partir d'un fichier .txt.  
 
Donc, dans Head.php j'ai au niveau de Entête :  
PHP:  

Code :
  1. <!-- ------------------------------------ -->
  2. <!--               Entête                 -->
  3. <!-- ------------------------------------ -->
  4. <tr valign="top">
  5.  <td height="150">
  6.   <table width="100%" border="0" cellspacing="0" cellpadding="0">
  7.    <tr>
  8.     <td width="75%">  
  9.     <a href="/"><img src="entete01.jpg" border="0" alt="Accueil" height="150"><img src="entete02.jpg" border="0" alt="Accueil" height="150"><img src="entete03.jpg" border="0" alt="Accueil" height="150"><img src="entete04.jpg" border="0" alt="Accueil" height="150"></a>
  10.     </td>
  11.     <td width="25%" align="right">
  12.      <table width="180" height="150" align="right" bgcolor="#3860c0" valign="top">
  13.       <?php include "ticker.php"; ?>
  14.    </table>
  15.     </td>
  16.    </tr>
  17.   </table>
  18.  </td>
  19. </tr>
  20. <tr>

 
 
 
Ce qui a pour but, de m'afficher correctement mes news.  
 
Voici aussi le code du ticker.php mes news :  
PHP:  

Code :
  1. <html><head>
  2. <style type="text/css">
  3. <!--
  4. .Style1 {
  5.    color: #FFFFFF;
  6.    font-weight: normal;
  7. }
  8. -->
  9. </style>
  10. </head><body>
  11. <?php
  12. $password = "test";  //CHANGE THE LOGIN PASSWORD
  13. extract($HTTP_GET_VARS);
  14. extract($HTTP_POST_VARS);
  15. if ($action != "admin" && $action != "login" && $action!= "temp3" ){
  16. ?>
  17. <TABLE width="180" height="140" cellPadding=0 cellSpacing=0 bordercolor="#3860c0" bgcolor=#CCCCCC style="BORDER-RIGHT: #3860c0 0px double; PADDING-RIGHT: 0px; BORDER-TOP: #3860c0 0px double; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 10px; BACKGROUND-IMAGE:  PADDING-BOTTOM: 0px; MARGIN: 0px; VERTICAL-ALIGN: top; BORDER-LEFT: #3860c0 0px double; WIDTH: 180px; COLOR: #ffffff; PADDING-TOP: 0px; BORDER-BOTTOM: #3860c0 0px double; FONT-STYLE: normal; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none" >
  18. <TBODY>
  19. <TR bgcolor="#3860c0">
  20. <TD width="180" style="BORDER-RIGHT: #3860c0 0px double; PADDING-RIGHT: 0px; BORDER-TOP: #3860c0 0px double; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 20px;  MARGIN: 0px; VERTICAL-ALIGN: center; BORDER-LEFT: #3860c0 0px double; COLOR: #ffffff; LINE-HEIGHT: normal; PADDING-TOP: 0px; BORDER-BOTTOM: #3860c0 0px double; BACKGROUND-REPEAT: repeat-x; FONT-STYLE: normal; FONT-FAMILY: Arial, Helvetica, sans-serif; HEIGHT: 20px; TEXT-DECORATION: none;    FONT-SIZE: 10px; COLOR: #000000; FONT-FAMILY: Verdana, Helvetica, Arial "><div align="center"><span class="Style1">&nbsp;<b>News</b></span></div></TD>
  21. </TR>
  22. <TR>
  23. <TD height="120" style="BORDER-RIGHT: #3860c0 2px double; PADDING-RIGHT: 4px; BACKGROUND-POSITION: center bottom; BORDER-TOP: #3860c0 2px double; PADDING-LEFT: 4px; FONT-WEIGHT: normal; FONT-SIZE: 10px;  PADDING-BOTTOM: 4px; MARGIN: 0px; VERTICAL-ALIGN: top; BORDER-LEFT: #3860c0 2px double; COLOR: #ffffff; LINE-HEIGHT: normal; PADDING-TOP: 4px; BORDER-BOTTOM: #3860c0 2px double; BACKGROUND-REPEAT: repeat-x; FONT-STYLE: normal; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none     FONT-SIZE: 11px; COLOR: #000000; FONT-FAMILY: Verdana, Helvetica, Arial">
  24. <MARQUEE onmouseover=this.stop() onmouseout=this.start()  
  25. scrollAmount=2 direction=up width="100%" height=120><?php $fp = file("news.txt" );
  26. for($i = 0; $i <sizeof($fp);$i++){
  27. echo $fp[$i]."<BR>";
  28. } ?></MARQUEE></TD></TR></TBODY></TABLE>
  29. <?php
  30. }
  31. if ($action=="admin" ){
  32. ?>
  33. <body bgcolor="#ccccc">
  34. <center><table align=middle><td align=left width=20%>
  35. <tr><td height="27" colspan="2"><FONT SIZE="4" COLOR="#000000">:: Lecteur de News ::</FONT></td><tr><td>&nbsp;</td>
  36. </tr><tr><form method=post action="?action=login"><td>Password:</td><td><input type=password name=pass>&nbsp;<input type=submit value=Submit></td></tr></form></table></center>
  37. <?php
  38. }
  39. if ($action=="login" ){
  40. if ($pass==$password){
  41. echo"Password <b>OK</b>";
  42. $fd = fopen ("news.txt", "r" );  
  43. $stuff = fread ($fd, filesize ("news.txt" ));  
  44. fclose ($fd);
  45. php?>
  46. <body bgcolor="#ccccc">
  47. <td height="399" width="100%" valign="top">  
  48. <form method="post" action="?action=temp3&te=news.txt">
  49. <table width="100%" border="0" cellpadding="5" cellspacing="0">
  50. <tr>  
  51. <td><b><u>Modification News :</u></b></td>
  52. </tr>
  53. <tr>  
  54. <td width="100%">  
  55. <textarea name="cont" cols="36" rows="20"><?php  echo $stuff ?></textarea>
  56. </td>
  57. </tr>
  58. <tr>  
  59. <td width="86%">&nbsp;  
  60. <input type="submit" name="Submit" value="Enregistrer">
  61. <input type="button" name="Cancel" value="Annuler" onClick="javascript&#058; history.back(1)">
  62. </td>
  63. </tr>
  64. <tr>  
  65. </tr>
  66. </table>
  67. </form>
  68. <?php  
  69. }else{
  70. echo "<FONT SIZE=2 COLOR=red>Mauvais Password</FONT>";
  71. }
  72. }
  73. if ($action=="temp3" ) {
  74. $cont=$HTTP_POST_VARS['cont'];
  75. $cont=stripslashes($cont);
  76. $fp = fopen("news.txt", "w" );
  77. fputs($fp, $cont);
  78. fputs($fp, "\n" );
  79. fclose($fp);
  80. php?>
  81. <body bgcolor="#ccccc">
  82. <BR>News "OK"<BR>
  83. <?php  
  84. }
  85. ?>
  86. </body></html>

 
 
j'ai donc dans mon site :  
www.site.com/index.php  
www.site.com/head.php  
www.site.com/foot.php  
www.site.com/ticker.php  
www.site.com/news.txt (avec 777 comme droit pour l'écriture)  
 
Dans le fichier news.txt, j'ai du textes avec des balises HTML (<b><br><hr>....)
 
Pour l'instant tout fonctionne bien, quand je lance index.php sauf que....  
 
J'ai d'autres pages dans différents dossiers :  
www.site.com/moto/moto.php  
 
et dans moto.php, je point sur PHP:  

Code :
  1. <?php include '../head.php'; ?>

 
 
Mais là, ca ne fonctionne pas !!  
j'ai un message du genre :  
Warning : file (news.txt) : failled to open stream : No such file directory in .....  
 
Je ne sais plus quoi faire  
Merci de m'aider


Message édité par twinsen60 le 15-05-2007 à 12:23:53
Reply

Marsh Posté le 15-05-2007 à 12:12:07   

Reply

Marsh Posté le 15-05-2007 à 12:18:05    

[:hahaguy] tu t'attends vraiment à ce qu'on lise tout ton paté, là? Tu pourrais pas au moins mettre le code entre balises [cpp][/cpp] ?


Message édité par skeye le 15-05-2007 à 12:18:14

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 15-05-2007 à 12:20:54    

code pourri


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 15-05-2007 à 12:24:38    

J'ai simplifié mon message.
j'ai juste laisser le code de Ticker.php au cas où.

Reply

Marsh Posté le 15-05-2007 à 12:25:07    

code toujours aussi pourri :o


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 15-05-2007 à 12:26:47    

et normal, ton fichier txt est dans le dossier parent


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 15-05-2007 à 12:29:01    

Je dois bien le laisser là, pour pouvoir le modifié en ligne, avec la fonction  
 
www.site.com/ticker.php?action=admin
 
A moins de pouvoir trouver un systeme qui a partir de là, enregistre le fichier news.txt dans une liste de dossiers

Reply

Marsh Posté le 15-05-2007 à 12:30:23    

En php, si tu ne redéfinis pas le répertoire courant alors le répertoire courant est celui du script appellé par le navigateur et ce même pour le code des fichiers inclus.
 
head.php cherche un fichier dans le répertoire courant. Quand t'appelles "www.site.com/moto/moto.php", le répertoire courant est le dossier "www.site.com/moto/". Normal qu'il ne trouve pas le fichier en question.

Reply

Marsh Posté le 15-05-2007 à 12:31:15    

donc, comment faire ?

Reply

Marsh Posté le 15-05-2007 à 12:35:24    

Donc faut :
- soit que tous tes fichiers soient dans le même répertoire, (ce qui devient vite bordélique)
- soit que tu changes le répertoire courant (désolé je me rappelle plus de l'instrution qui le permet)  
- soit tu te démerdes pour les fichiers php regardent le répertoire courant et calculent les chemins relatifs qui leur permettent de récupérer les fichiers qu'ils cherchent (solution la plus crade)


Message édité par omega2 le 15-05-2007 à 12:37:07
Reply

Marsh Posté le 15-05-2007 à 12:35:24   

Reply

Marsh Posté le 15-05-2007 à 14:54:07    

Mon, problème ne viendrai pas de ticker.php (ligne 24 à 28):
 

Code :
  1. <MARQUEE onmouseover=this.stop() onmouseout=this.start()  scrollAmount=2 direction=up width="100%" height=120><?php $fp = file("news.txt" ); for($i = 0; $i <sizeof($fp);$i++){ echo $fp[$i]."<BR>"; } ?></MARQUEE>

 
 
a l'endroit de news.txt....

Reply

Marsh Posté le 16-05-2007 à 08:19:35    

Celà marcherai avec au ligne 25-42-43-76 de ticker.php :
 
au niveau de news.txt
 
Ligne 25:
<?php $fp = file($_SERVER["DOCUMENT_ROOT"] . "/news.txt" );
 
Ligne 42 et 43:
$fd = fopen ($_SERVER["DOCUMENT_ROOT"] . "/news.txt", "r" );
$stuff = fread ($fd, filesize ($_SERVER["DOCUMENT_ROOT"] . "/news.txt" ));  

 
Ligne 76:
$fp = fopen($_SERVER["DOCUMENT_ROOT"] . "/news.txt", "w" );
 
J'ai pas tester, car je suis au travail, et je n'ais pas de serveur FTP


Message édité par twinsen60 le 16-05-2007 à 08:20:44
Reply

Marsh Posté le 18-05-2007 à 07:52:37    

Bonjour
 
Mon message d'avant avec ($_SERVER["DOCUMENT_ROOT"] . "/news"... fonctionne très bien.
Aucun problème dans toutes mes pages.
et ma fonction ticker.php?action=admin fonctionne toujours.
 
Merci quand même de votre aide

Reply

Sujets relatifs:

Leave a Replay

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