Parse error: syntax error, unexpected T_VARIA
derrick
-
derrick -
derrick -
Bonjour,
je débute dans la programmation en php. Pour mon site j'ai l'idée de réaliser un livre d'or.
Pour le code source, je me suis inspiré de ce livre : https://books.google.fr/books?id=ZbHa0Y8F6ugC&pg=PA60&lpg=PA60&dq=%24message+pr%C3%A9c%C3%A9dent%3Dfread+%24fichier,+filesize(%22livre.txt%22)%3B&source=bl&ots=wv-TchovwT&sig=nocMfzPAfpBt8shJqAoO6ZxApRo&hl=fr&ei=5IniS6KoM5qGmwOFlehC&sa=X&oi=book_result&ct=result#v=onepage&q&f=false
J'aimerais qu'on m'aide pour corriger les erreurs. la version php du serveur est la 5.
Dans ajout_livre.php, j'ai beau changer, j'ai toujours ce message :
Parse error: syntax error, unexpected T_VARIABLE in /home/venteart/public_html/ajout_livre.php on line 3
Est-ce que quelqu'un peut m'aider?
Merci
je débute dans la programmation en php. Pour mon site j'ai l'idée de réaliser un livre d'or.
Pour le code source, je me suis inspiré de ce livre : https://books.google.fr/books?id=ZbHa0Y8F6ugC&pg=PA60&lpg=PA60&dq=%24message+pr%C3%A9c%C3%A9dent%3Dfread+%24fichier,+filesize(%22livre.txt%22)%3B&source=bl&ots=wv-TchovwT&sig=nocMfzPAfpBt8shJqAoO6ZxApRo&hl=fr&ei=5IniS6KoM5qGmwOFlehC&sa=X&oi=book_result&ct=result#v=onepage&q&f=false
J'aimerais qu'on m'aide pour corriger les erreurs. la version php du serveur est la 5.
Dans ajout_livre.php, j'ai beau changer, j'ai toujours ce message :
Parse error: syntax error, unexpected T_VARIABLE in /home/venteart/public_html/ajout_livre.php on line 3
Est-ce que quelqu'un peut m'aider?
Merci
A voir également:
- Parse error: syntax error, unexpected T_VARIA
- Eespt technical error ✓ - Forum TNT / Satellite / Réception
- Pointage antenne trop faible - Forum Box et Streaming vidéo
- Fan error lenovo - Forum PC portable
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- A javascript error occurred in the main process - Forum Matériel & Système
13 réponses
<?php
$fichier=fopen("livre.txt", "r");
($messageprecedent = fread $fichier, filesize("livre.txt"));
fclose ($fichier);
$date=date("d/n/Y");
$nom=ereg_replace("[\]", " ", $nom);
$message=ereg_replace("[\]", "", $message);
$mail=ereg_replace("[\]", "", $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> <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é le $date </table></td></tr></tbody></table></div><div align=center></div>");
fwrite($fichier, "</NewMsg><br>");
fwrite($fichier, "\n");
fwrite($fichier, $messageprecedent);
fclose($fichier);
header ("Location : http://www.ventearticles.webou.net/livre.php");
?>
$fichier=fopen("livre.txt", "r");
($messageprecedent = fread $fichier, filesize("livre.txt"));
fclose ($fichier);
$date=date("d/n/Y");
$nom=ereg_replace("[\]", " ", $nom);
$message=ereg_replace("[\]", "", $message);
$mail=ereg_replace("[\]", "", $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> <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é le $date </table></td></tr></tbody></table></div><div align=center></div>");
fwrite($fichier, "</NewMsg><br>");
fwrite($fichier, "\n");
fwrite($fichier, $messageprecedent);
fclose($fichier);
header ("Location : http://www.ventearticles.webou.net/livre.php");
?>
($messageprecedent = fread $fichier, filesize("livre.txt"));
Incorrect!
Remplace par: $messageprecedent = fread($fichier, filesize("livre.txt"));
Incorrect!
Remplace par: $messageprecedent = fread($fichier, filesize("livre.txt"));
Ok merci!
et pour un autre fichier livre.php, j'ai ce message :
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/venteart/public_html/livre.php on line 24
Voici le code source correspondant:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Le livre d'or</title>
</head>
<body>
<?php
$nbmsg=0;
$fichier = fopen ("livre.txt", "r");
while($ligne = fread ($fichier, 150)){
if (eregi ("<NewMsg>", $ligne)){
$nbmsg += 1;
}
}
fclose ($fichier);
?>
<center>Livre d'or</center><br><br>
<center>
<?php
if ($nbmsg == 0) {
echo "<br><center>Aucun message dans le livre d'or<br><br></center>
<a href="www.ventearticles.webou.net/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">
<?php
echo "$nbmsg";
?>
</font><font face="arial" size="2" color="#C0C0C0"></font></b></td></tr></table></div>
<?php
include "message.php";
?>
<a href="index.htm">accueil</a>
</body>
</html>
et pour un autre fichier livre.php, j'ai ce message :
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/venteart/public_html/livre.php on line 24
Voici le code source correspondant:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Le livre d'or</title>
</head>
<body>
<?php
$nbmsg=0;
$fichier = fopen ("livre.txt", "r");
while($ligne = fread ($fichier, 150)){
if (eregi ("<NewMsg>", $ligne)){
$nbmsg += 1;
}
}
fclose ($fichier);
?>
<center>Livre d'or</center><br><br>
<center>
<?php
if ($nbmsg == 0) {
echo "<br><center>Aucun message dans le livre d'or<br><br></center>
<a href="www.ventearticles.webou.net/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">
<?php
echo "$nbmsg";
?>
</font><font face="arial" size="2" color="#C0C0C0"></font></b></td></tr></table></div>
<?php
include "message.php";
?>
<a href="index.htm">accueil</a>
</body>
</html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
echo "<br><center>Aucun message dans le livre d'or<br><br></center>
<a href="www.ventearticles.webou.net/index.htm">Accueil</a></body></html>";
Incorrect!
Remplace par:
echo "<br><center>Aucun message dans le livre d'or<br><br></center>
<a href='www.ventearticles.webou.net/index.htm'>Accueil</a></body></html>";
ou bien par:
$lien="www.ventearticles.webou.net/index.htm";
echo "<br><center>Aucun message dans le livre d'or<br><br></center>
<a href='".$lien."'>Accueil</a></body></html>";
<a href="www.ventearticles.webou.net/index.htm">Accueil</a></body></html>";
Incorrect!
Remplace par:
echo "<br><center>Aucun message dans le livre d'or<br><br></center>
<a href='www.ventearticles.webou.net/index.htm'>Accueil</a></body></html>";
ou bien par:
$lien="www.ventearticles.webou.net/index.htm";
echo "<br><center>Aucun message dans le livre d'or<br><br></center>
<a href='".$lien."'>Accueil</a></body></html>";
<?php
if ($nbmsg == 0) {
echo "<br><center>Aucun message dans le livre d'or<br><br></center>
<a href="www.ventearticles.webou.net/index.htm">Accueil</a></body></html>";
exit;
}
?>
En fait, toute cette partie est incorrecte...
Déjà tu ferme deux fois les balises html et body... tu n'as pas le droit.
Voici, une correction:
<?php
if($nbmsg == 0){
?>
<br /><center>Aucun message dans le livre d'or<br><br></center>
<a href="www.ventearticles.webou.net/index.htm">Accueil</a>
<?php
exit();
}
?>
if ($nbmsg == 0) {
echo "<br><center>Aucun message dans le livre d'or<br><br></center>
<a href="www.ventearticles.webou.net/index.htm">Accueil</a></body></html>";
exit;
}
?>
En fait, toute cette partie est incorrecte...
Déjà tu ferme deux fois les balises html et body... tu n'as pas le droit.
Voici, une correction:
<?php
if($nbmsg == 0){
?>
<br /><center>Aucun message dans le livre d'or<br><br></center>
<a href="www.ventearticles.webou.net/index.htm">Accueil</a>
<?php
exit();
}
?>
J'ai effectué les correction, le code semble donc valide mais, le nom, le mail et le message ne s'affichent pas, il n'y a que le nombre de messages et la date du message posté.
juste pour info voilà le code de message.php (mais normalement il n'y a pas d'erreurs)
<?php
$fichier=fopen ("livre.txt", "r");
while($ligne=fread($fichier, 150)) {
echo $ligne;
}
fclose($fichier);
?>
juste pour info voilà le code de message.php (mais normalement il n'y a pas d'erreurs)
<?php
$fichier=fopen ("livre.txt", "r");
while($ligne=fread($fichier, 150)) {
echo $ligne;
}
fclose($fichier);
?>
Essaie comme ça... ce code récupère toute le texte du fichier d'un seul coup
<?php
$fichier = fopen("livre.txt", "rb");
$texte = '';
while (!feof($fichier)) {
$texte .= fread($fichier, 8192);
}
fclose($fichier);
echo $texte;
?>
Et voici la variante ligne par ligne a testé:
<?php
$fichier = fopen("livre.txt", "rb");
while (!feof($fichier)) {
$ligne = fread($fichier, 255);
echo $ligne;
}
fclose($fichier);
"Trotti Trotta, Monsieur P, il y a des anges qui veulent un bisou..."
"Tu as vu la lumière dans son bidon ?"
<?php
$fichier = fopen("livre.txt", "rb");
$texte = '';
while (!feof($fichier)) {
$texte .= fread($fichier, 8192);
}
fclose($fichier);
echo $texte;
?>
Et voici la variante ligne par ligne a testé:
<?php
$fichier = fopen("livre.txt", "rb");
while (!feof($fichier)) {
$ligne = fread($fichier, 255);
echo $ligne;
}
fclose($fichier);
"Trotti Trotta, Monsieur P, il y a des anges qui veulent un bisou..."
"Tu as vu la lumière dans son bidon ?"
maintenant j'ai:
Warning: Cannot modify header information - headers already sent by (output started at /home/venteart/public_html/ajout_livre.php:8) in /home/venteart/public_html/ajout_livre.php on line 31
pour ajout_livre.php
Warning: Cannot modify header information - headers already sent by (output started at /home/venteart/public_html/ajout_livre.php:8) in /home/venteart/public_html/ajout_livre.php on line 31
pour ajout_livre.php
voilà le code modifié :
<html>
<head>
<title>Message ajouté</title>
</head>
<body>
<?php
$fichier=fopen("livre.txt", "r");
$messageprecedent=fread($fichier, filesize("livre.txt"));
fclose ($fichier);
$date=date("d/n/Y");
$nom=ereg_replace("[\]", " ", $nom);
$message=ereg_replace("[\]", " ", $message);
$mail=ereg_replace("[\]", " ", $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'> <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é le $date </table></td></tr></tbody></table></div><div align='center'></div>");
fwrite($fichier, "</NewMsg><br />");
fwrite($fichier, "\n");
fwrite($fichier, $messageprecedent);
fclose($fichier);
header("Location : http://www.ventearticles.webou.net/livre.php");
?>
</body>
</html>
<html>
<head>
<title>Message ajouté</title>
</head>
<body>
<?php
$fichier=fopen("livre.txt", "r");
$messageprecedent=fread($fichier, filesize("livre.txt"));
fclose ($fichier);
$date=date("d/n/Y");
$nom=ereg_replace("[\]", " ", $nom);
$message=ereg_replace("[\]", " ", $message);
$mail=ereg_replace("[\]", " ", $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'> <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é le $date </table></td></tr></tbody></table></div><div align='center'></div>");
fwrite($fichier, "</NewMsg><br />");
fwrite($fichier, "\n");
fwrite($fichier, $messageprecedent);
fclose($fichier);
header("Location : http://www.ventearticles.webou.net/livre.php");
?>
</body>
</html>
La fonction header() ne peut pas être utilisée après l'envoie des entêtes HTTP.
Et ces entêtes sont envoyées avant que le premier caractère le soit.
Et ces entêtes sont envoyées avant que le premier caractère le soit.
De ne pas faire d'echo (print) avant.
Ou tu peux utiliser la bufferisation de sortie.
https://www.php.net/manual/fr/ref.outcontrol.php
Ou tu peux utiliser la bufferisation de sortie.
https://www.php.net/manual/fr/ref.outcontrol.php
J'ai décidé d'utiliser une autre méthode décrite sur un livre, celle-ci n'utilise pas un fichier .txt, mais réécrit sur forum.htm. Mais des problèmes subsistent, voilà le code source forum.php :
<?php
$nom=$_POST['nom'];
$avis=stripslashes($_POST['avis']);
$dat=DATE('j-M-Y');
$f=fopen('forum.htm', 'r');
$texte==fread($f, 32000);
fclose($f);
$f=fopen('forum.htm', 'w');
$phr=strpos($texte, '<hr />');
$deb=substr($texte, 0, $phr);
$fin=substr($texte, $phr);
$texte=$deb." <hr />\n<h3>De : ".$nom.' Le :';
$texte.=$date."</h3>\n<p>".$avis."</p>\n".$fin;
fwrite($f, $texte);
fclose($f);
echo '<meta http-equiv="refresh" content="0; url=forum.htm" />';
?>
Les problèmes sont les suivants :
-la date ne s'affiche pas
-la page n'affiche seulement que :
De : test Le :
message test
Autrement dit le formulaire ne s'affiche plus
<?php
$nom=$_POST['nom'];
$avis=stripslashes($_POST['avis']);
$dat=DATE('j-M-Y');
$f=fopen('forum.htm', 'r');
$texte==fread($f, 32000);
fclose($f);
$f=fopen('forum.htm', 'w');
$phr=strpos($texte, '<hr />');
$deb=substr($texte, 0, $phr);
$fin=substr($texte, $phr);
$texte=$deb." <hr />\n<h3>De : ".$nom.' Le :';
$texte.=$date."</h3>\n<p>".$avis."</p>\n".$fin;
fwrite($f, $texte);
fclose($f);
echo '<meta http-equiv="refresh" content="0; url=forum.htm" />';
?>
Les problèmes sont les suivants :
-la date ne s'affiche pas
-la page n'affiche seulement que :
De : test Le :
message test
Autrement dit le formulaire ne s'affiche plus