Bonjour !
Je viens d'essayer de coder un petit script qui me permettrait de lire et poster les commentaires des visiteurs de mon site, un peu comme sur skyblog...
Voila le code :
post_comment.php
<html>
<head>
<title>Poster un commentaire</title>
<?
function RecordMessage($MessagesFile)
{
$nom=$_POST['nom'];
$commentaire=$_POST['commentaire'];
if (!file_exists($MessagesFile))
{
$pntFile1=fopen($MessagesFile,"w+");
$ret=fputs($pntFile1,"<HR>\r");
$ret=fclose($pntFile1);
}
$idlck=fopen($MessagesFile.".bak","w");
fclose($idlck);
$ret=copy($MessagesFile,$MessagesFile.".bak");
$pntFile1=fopen($MessagesFile,"w");
$pntFile2=fopen($MessagesFile.".bak","r");
// write the message
$commentaire= ereg_replace(chr(13),"<BR>",$commentaire); // replace chr(13) by <BR>
$commentaire= str_replace("\'","'",$commentaire);
$commentaire= str_replace('\"','"',$commentaire);
if($commentaire&&$nom)
{
$ret=fputs($pntFile1,"<B>posté par $nom</B>\r");
$ret=fputs($pntFile1,date("d/m/Y H:i"));
$ret=fputs($pntFile1,"<BR>\r");
$ret=fputs($pntFile1,"<BR>\r");
$ret=fputs($pntFile1," <CENTER>\r");
$ret=fputs($pntFile1," <I>$commentaire</I>\r");
$ret=fputs($pntFile1," </CENTER>\r");
$ret=fputs($pntFile1,"<BR>\r");
$ret=fputs($pntFile1,"<HR>\r");
}
$contents = fread( $pntFile2, filesize( "$MessagesFile.bak" ) );
$ret =fputs($pntFile1,$contents);
$ret=fclose($pntFile2);
$ret=fclose($pntFile1);
$ret=unlink($MessagesFile.".bak");
}
?>
<?
$MessagesFile=('messages'.$id.'.txt');
$ecriture=RecordMessage($MessagesFile);
?>
<style>
a{
text-decoration:none;
}
</style>
<SCRIPT LANGUAGE="JavaScript">
function verifform(formulaire)
{
if(formulaire.commentaire.value == "" || formulaire.nom.value == "")
{
alert('Veuillez remplir tous les champs');
}
else
{
formulaire.submit();
}
}
</SCRIPT>
</head>
<body link="#000099" vlink="#000099" alink="#000099">
<center>
<form method="post" action="valide_comment.php">
<b>Pseudo:</b><br>
<?
if($pseudo=="")
{
echo "<input type=\"text\" name=\"nom\" size=\"20\" maxlength=\"40\">";
}
else
{
echo "<input type=\"text\" name=\"nom\" value=$pseudo size=\"20\" maxlength=\"40\" readonly=\"readonly\">";
}
?>
<br><br>
<b>Commentaire :</b><br>
<textarea name="commentaire" cols="40" rows="5"></textarea>
<br><br>
<input type="button" value="envoyer" onClick="verifform(this.form)">
</form>
</center>
</body>
</html>
read_comment.php
<html>
<head>
<title>Commentaires</title>
<?
function lit_actu($fichier)
{
$lecture=fopen($fichier, "r");
$chaine=fread($lecture,filesize($fichier));//lit le contenu du fichier
fclose($lecture);
return $chaine;
}
?>
</head>
<body link="#000099" vlink="#000099" alink="#000099">
<center>
<?
$actu=lit_actu('messages'.$id.'.txt');
?>
<b>
<?
if($actu == "" || $actu == " " || $actu == "<HR>
")
{
echo "Aucun commentaire posté !";
}
else
{
echo "$actu";
}
?>
</b>
</center>
</body>
</html>
valide_comment.php
<html>
<head>
<title>Poster un commentaire</title>
<style>
a{
text-decoration:none;
}
</style>
</head>
<body link="#000099" vlink="#000099" alink="#000099">
<center>
<br><br><br><b>Votre commentaire a été ajouté !</b><br><br><br><br><br>
<form>
<input type="button" value="Fermer la fenêtre"
onClick="self.close()"> </form>
</center>
</body>
</html>
J'affiche donc ensuite deux liens de ce type : post_comment.php?id=1 et read_comment.php?id=1
Voila, comme je suis assez mauvais en php, j'aimerais que vous m'expliquiez mes erreurs et pourquoi ca ne fonctionne pas, les eventuelles failles...
Voila ce que ca affiche
Warning: fread() [function.fread]: Length parameter must be greater than 0. in /mnt/112/sdc/7/9/knorc/read_comment.php on line 10
Warning: fread() [function.fread]: Length parameter must be greater than 0. in /mnt/112/sdc/7/9/knorc/post_comment.php on line 43
et d'autres trucs bizarres du genre...
Vous pouvez voir le script en fonctionnement sur mon site
Merci d'avance pour votre aide !! 