probleme txt

probleme txt - PHP - Programmation

Marsh Posté le 06-12-2004 à 00:12:38    

pourquoi rien ne s insrit dans le fichier txt ormis le script du tableau en html?
Notice: Undefined variable: texte in c:\program files\easyphp1-7\www\php dynamiser votre site\chap03\livre.php on line 29
 
 
voici les trois fichiers:
 
 
ajout_message.php
 
<?
/* Programme ajout_message.php */
 
/* Sauvegarde des données précédentes */  
 
$fichier = fopen("livre.txt","r" );
$messagesprecedents = fread($fichier, filesize("livre.txt" ));
fclose($fichier);
 
/* Récupération de la date du jour */
 
$date = date("d/n/Y" );
 
/*
* Avant d'enregistrer les données, un traitement est nécessaire pour enlever  * le symbole ' \ ' qui est ajouté par PHP devant tout caractère pouvant être  * en conflit avec le programme. Cette fonction sera étudiée au chapitre       * suivant, ne vous en souciez pas pour le moment.  
*/
 
$nom = ereg_replace("[\]", " ", $nom);
$message=ereg_replace("[\]", " ", $message);
$mail=ereg_replace("[\]", " ", $mail);
 
/* Ouverture et écriture des données dans le fichie livre.txt */
 
$fichier = fopen("livre.txt","w" );
fwrite($fichier, "<br><NewMsg><DIV align=center>
  <TABLE bgColor=#CCCCCC border=1 borderColorDark=#000080 borderColorLight=#000080  
cellSpacing=0 width=650 bordercolor=#9999FF>
    <TBODY>  
    <TR>
    <TD width='100%'>
        <TABLE border=0 width='100%'>
          <tr>  
            <td colspan='2'>&nbsp;<TR>  
            <TD width='16%'><FONT color=#cc3300 face=Arial  
            size=2><B><font color='#FF9900'>$nom</font> </B></FONT></TD>
            <TD width='84%'><font color=#cc3300 face=Arial  
            size=2><b><a href='mailto:$mail'>$nom</a></b></font></TD>
          </TR>" );
fwrite($fichier, "<tr><td colspan='2'><font color=#cc3300 face=Arial size=2></font>" );
fwrite($fichier, "<TR>  
            <TD colSpan=4><font face='Arial' size='2' color=#FFFFFF>$message</font></TD>
          </TR>
          <tr>  
            <td colspan='2'> Post&eacute; le $date</TABLE></TD></TR></TBODY></TABLE>
</DIV><DIV align=center> </DIV>" );    
fwrite($fichier, "</NewMsg><br>" );
fwrite($fichier, "\n" );
 
/* Ecriture des données sauvegardées */
 
fwrite($fichier, $messagesprecedents);
fclose($fichier);
 
/* Redirection du navigateur vers la page du livre d'or */
 
header("Location: livre.php" );
 
?>
 
 
-------------------------------------------------
livre.htm
 
<head>
<title>livre.htm</title>
</head>
<body>
<center>Le Livre D'or </center>
<br><br>
<center>
<p><a href="livre.php">Afficher les messages</a></p><br>
<form method="post" action="ajout_livre.php">
  <table border="0" width="455" bgcolor="#000000" cellspacing="0">
    <tr>
      <td width="454">
      <table border="0" width="454" bgcolor="#C0C0C0" cellspacing="1" cellpadding="2" height="198">
      <tr>
        <td width="500" height="35" colspan="2" valign="top">
          <p align="center"><font face="Arial" size="2" color="#990000"><b>Laissez
          un message sur mon livre d'or!!!</b></font></p>
        </td>
      </tr>
    </center>
      <tr>
        <td width="185" height="19">
          <p align="left"><font face="Arial" size="2" color="#000080">          Votre nom ou pseudo :</font></td>
<center>
        <td width="300" height="19"><input type="text" name="nom" size="20"></td>
        </tr>
      <tr>
          <td width="185" height="21" align="left"><font face="Arial" size="2" color="#000080">Votre  Email :</font></td>
          <td width="300" height="21"><input type="text" name="mail"size="20"></td>
      </tr>
        <tr>
          <td width="185" height="113" align="left"><font face="Arial" size="2" color="#000080">Votre message :</font></td>
          <td width="300" height="113"><textarea rows="6" name="message" cols="33"></textarea></td>
        </tr>
      </table>
      </td>
    </tr>
  </table>
    </center>
  <p align="center"><input type="submit" value="Envoyer" name="redirect"></p>
</form>
</body>
</html>
------------------------------------
livre.php
 
 
<html>
<head>
<title>Le Livre d'Or</title>
</head>
<body>
<?
 
/* Programme livre.php */
 
/* Récupération du nombre de message */
 
$nbmsg=0;
 
$fichier=fopen("livre.txt", "r" );
 
 
while($ligne=fgets($fichier, 150)){
 
   if(eregi("<NewMsg>", $ligne)){
 
   $nbmsg += 1;
 
   }
 
}
 
fclose($fichier);
 
   if(eregi("<NewMsg>", $texte)){
 
   $nbmsg += 1;
 
   }
 
?>
 
<center>Le Livre D'or</center>
<br><br>
<center>
<?
 
/* Personnalisation du message en fonction du nombre de message */
 
if ($nbmsg == 0){
 
echo "<br><center>Il n'y a pas de messages dans mon livre d'or... <br><br></center><a href=\"index.htm\">accueil</a></body></html>";
exit;
 
}
 
?>
 
<div align="center">
  <center>
  <table border="1" width="650" cellspacing="0" bordercolorlight="#000000" bordercolordark="#000000">
    <tr>
     <td width="34%" bgcolor="#0033CC">
      <p align="left"><font face="Arial" size="2" color="#C0C0C0"><b>Nombre de
      messages:</b> </font><b><font face="Arial" size="2" color="#FFFFFF">
<?
/* Affichage du nombre de message */
 
echo "$nbmsg";  
 
?>
 
</font><font face="Arial" size="2" color="#C0C0C0">
      </font></b></td>
  </tr>
  </table>
</div>
 
<?
 
/* Insertion du programme messages.php */
 
include "messages.php";
 
?>
<a href="index.htm">accueil</a>
</body>
</html>
------------------------------------
livre.txt
 
<br><NewMsg><DIV align=center>
  <TABLE bgColor=#CCCCCC border=1 borderColorDark=#000080 borderColorLight=#000080  
cellSpacing=0 width=650 bordercolor=#9999FF>
    <TBODY>  
    <TR>
    <TD width='100%'>
        <TABLE border=0 width='100%'>
          <tr>  
            <td colspan='2'>&nbsp;<TR>  
            <TD width='16%'><FONT color=#cc3300 face=Arial  
            size=2><B><font color='#FF9900'></font> </B></FONT></TD>
            <TD width='84%'><font color=#cc3300 face=Arial  
            size=2><b><a href='mailto:'></a></b></font></TD>
          </TR><tr><td colspan='2'><font color=#cc3300 face=Arial size=2></font><TR>  
            <TD colSpan=4><font face='Arial' size='2' color=#FFFFFF></font></TD>
          </TR>
          <tr>  
            <td colspan='2'> Post&eacute; le 05/12/2004</TABLE></TD></TR></TBODY></TABLE>
</DIV><DIV align=center> </DIV></NewMsg><br>

Reply

Marsh Posté le 06-12-2004 à 00:12:38   

Reply

Marsh Posté le 06-12-2004 à 00:33:50    

Parce que $texte n'est pas défini ? :D
 
("dynamiser votre site", j'espère que ce n'est pas un cours ? :D)


Message édité par naceroth le 06-12-2004 à 00:34:05
Reply

Marsh Posté le 06-12-2004 à 01:03:37    

si c est un cour :(
mais j ai supprimé :
fclose($fichier);
 
   if(eregi("<NewMsg>", $texte)){
 
   $nbmsg += 1;
 
   }  
car ça ne figurait pas dans le bouquin du coup je n ai plus eu le message d'erreur seulement rien ne saffiche dans le fichier texte ormis la date, je pense que le post ne fonctionne pas!
car j ai pris cette exemple du cours pour voir si mes fichier texte fonctionnaient(voir message d hier) car j ai un autre script fwrite dans un fichier et pareil rien ne s inscrit dans le fichier txt.
peut etre dois je configurer apache differement, j ai lu des trucs la config dans php.ini mais j ai cherché sans grande conviction sur ce qu il fallait faire.

Reply

Marsh Posté le 06-12-2004 à 01:22:28    

Un problème à la fois :D
 

yugtarel a écrit :

si c est un cour :(


 
Je félicite pas l'auteur alors, à moins que le bouquin soit trèèès vieux
 

Citation :


mais j ai supprimé :

Code :
  1. fclose($fichier);
  2. if(eregi("<NewMsg>", $texte)){
  3. $nbmsg += 1;
  4. }


car ça ne figurait pas dans le bouquin


Le fclose était à sa place pourtant, le reste, je voyais pas à quoi ça pouvait bien servir :D
 

Citation :


 du coup je n ai plus eu le message d'erreur seulement rien ne saffiche dans le fichier texte ormis la date, je pense que le post ne fonctionne pas!


 
Meuh si il fonctionne, c'est plutôt la syntaxe qui a changé (ce qui confirme le côté vieux bouquin envisagé plus haut). On utilise les tableaux $_POST ou $_GET maintenant pour récupérer les données d'un formulaire, tu dois utiliser $_POST['nom'] au lieu de $nom par exemple :)
 
(un ereg_replace pour virer les / d'une chaine, dites moi que je rêve...)

Reply

Marsh Posté le 06-12-2004 à 16:19:22    

d'abord merci pour ta réponse
je n ai pas supprimé fclose mais bien ce qui est après.
le bouquin n est pas si vieux, il est encore en vent à la FNAC:http://www.microapp.com/fiche_produit.cfm?ref_produit=4283
 
mais bon quant on commence on ne peut juger qu à priori.
pour $_POST je vais  appliquer tes consiels
 
A+

Reply

Marsh Posté le 06-12-2004 à 16:27:50    

Le fait qu'il soit en vente à la FNAC ne garanti pas qu'l soit très frais, ton bouquin.
Il doit être basé sur php 3.x, alors que la version actuelle est la 5.x...:o


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

Marsh Posté le 06-12-2004 à 20:51:42    

php4(tu trouves  plus de bouquin en php3 dans à la fnac(paris en tout cas)
 
sinon j ai essaye ça mais ça marche pô
 
<?
/* Programme ajout_message.php */
 
/* Sauvegarde des données précédentes */  
 
$fichier = fopen("livre.txt","r" );
$messagesprecedents = fread($fichier, filesize("livre.txt" ));
fclose($fichier);
 
/* Récupération de la date du jour */
 
$date = date("d/n/Y" );
 
/* Ouverture et écriture des données dans le fichie livre.txt */
$nom=$_POST['nom']
$message=$_POST['message']
$mail=$_POST['mail']
$fichier = fopen("livre.txt","w" );
fwrite($fichier, "<br><NewMsg><DIV align=center>
  <TABLE bgColor=#CCCCCC border=1 borderColorDark=#000080 borderColorLight=#000080  
cellSpacing=0 width=650 bordercolor=#9999FF>
    <TBODY>  
    <TR>
    <TD width='100%'>
        <TABLE border=0 width='100%'>
          <tr>  
            <td colspan='2'>&nbsp;<TR>  
            <TD width='16%'><FONT color=#cc3300 face=Arial  
            size=2><B><font color='#FF9900'>nom</font> </B></FONT></TD>
            <TD width='84%'><font color=#cc3300 face=Arial  
            size=2><b><a href='mailto:$mail>nom</a></b></font></TD>
          </TR>" );
fwrite($fichier, "<tr><td colspan='2'><font color=#cc3300 face=Arial size=2></font>" );
fwrite($fichier, "<TR>  
            <TD colSpan=4><font face='Arial' size='2' color=#FFFFFF>$message</font></TD>
          </TR>
          <tr>  
            <td colspan='2'> Post&eacute; le $date</TABLE></TD></TR></TBODY></TABLE>
</DIV><DIV align=center> </DIV>" );    
fwrite($fichier, "</NewMsg><br>" );
fwrite($fichier, "\n" );
 
/* Ecriture des données sauvegardées */
 
fwrite($fichier, $messagesprecedents);
fclose($fichier);
 
/* Redirection du navigateur vers la page du livre d'or */
 
header("Location: livre.php" );
 
?>
<?
if ($date)
echo "nom ok";
?>

Reply

Marsh Posté le 06-12-2004 à 20:53:19    

yyyyyyyyyyyyyes  ça marche , j avais oublié lePOINT VIRGULE;;;;;;;;;;;;;;;;;;;;;;;;;

Reply

Sujets relatifs:

Leave a Replay

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