Oto prosty skrypt księgi gości:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<link rel="STYLESHEET" type="text/css" href="style.css">
</head>
<table style="height:100%; width:100%;" cellspacing="0" cellpadding="0">
<tr>
<td>
<center>
<b>COMMENTS</b>
</center>
<p align="center">* <i>Required!</i></p><br>
<?
$txt=fopen("guest.gb","r");
$gbfile="";
while($line=fgets($txt,3000
)) $gbfile.=$line;
//name
if($name==""){
$errorcolor_1 = "red";
$error = "error";
}
else{
$errorcolor_1 = "black";
}
//comment
if($comment==""){
$errorcolor_2 = "red";
$error = "error";
}
else{
$errorcolor_2 = "black";
}
if(!$action){
$action = "note";
}
if($error=="error"||$action=="note"){
?>
<div align="center">
<center>
<form method="post" action="
<? echo $PHP_SELF;?>">
<font color="
<? echo $errorcolor_1; ?>">Name*</font><br />
<input type="text" name="name" style="width: 250px; height: 17px;" class="note"><br />e-Mail<br />
<input type="text" name="mail" style="width: 250px; height: 17px;" value="@" class="note" style="font-family: verdana; font-size: 11px"><br />
<br />
<font color="
<? echo $errorcolor_2; ?>">Comment*</font><br />
<textarea name="comment" cols="39" rows="6" class="note</textarea><br /><br />
<input type="submit" name="action" value="Send" class="note" style="font-family: verdana; font-size: 11px">
<input type="reset" name="action" value="Reset" class="note" style="font-family: verdana; font-size: 11px">
<br>
</form>
</center>
</div>
<?
?>
<?
}else{
if(isset($name)&&isset
($comment)&&isset
($mail)) {
mail("gren-landia@...","Comment Entry", "Name: $name
e-Mail: $mail
Comment: $comment ");
if ($mail=="" OR $mail=="@")
{
$m = null;
}
else
{
$m = "<br>\n<a href='mailto:$mail'>$mail</a>";
}
$gbfile="<br><center><i>".date(" d.m.Y ")."</i><br>\n<b>$name</b> $m\n"."</center>\n$comment<br><center><br>*</center>\n".$gbfile; $txt=fopen("guest.gb","w"); or
die ("<p><br><center>Error.<br>--><a href='guest.php'>Go back.</a></center><br></p>");}
echo "<p><br><center>Thanks.<br>--><a href='guest.php'>Go back.</a></center><br> " . $gbfile . "</p>"; }
?>
<p>
</td>
</tr>
</table>
</body>
</html>
Po dodaniu opcji przyporządkowującej nickowi "Owner" inny kolor, np. niebieski #0000FF, do funkcji error w postaci:
<?php
//name
if($name==""){
$errorcolor_1 = "red";
$error = "error";
}
elseif($name=="Owner"){
$errorcolor_1 = "black";
$nam = "<font color="#0000FF">$name</font>";
}
else{
$errorcolor_1 = "black";
$nam = "$name";
}
?>
(gdzie $nam jest nową zmienną zastępującą przy zapisywaniu do pliku zmienną $name)
pojawia się komunikat błędu:
"Parse error: parse error, unexpected '}' in /n/guest.php on line 31"
(gdzie 31. linijka to
<?php
//name
if($name==""){
$errorcolor_1 = "red";
$error = "error";
}
elseif($name=="Owner"){
$errorcolor_1 = "black";
$nam = "<font color="#0000FF">$name</font>";
} -------------------------TA
else{
$errorcolor_1 = "black";
$nam = "$name";
}
?>
)
Tak samo po dodaniu wpisu
<?php
if ($name=="Owner")
{
$nam = "<font color="#0000FF">$name</font>";
} // (linijka 93)
else
{
$nam = "$name";
}
?>
już w drugiej części kodu, tuż po warunku dotyczącym zmiennej $mail, pojawia się "Parse error" ze wskazaniem na odpowiadającą linijkę 93.
Gdzie w dodanej funkcji jest błąd, i czy możliwe jest bezkonfliktowe dodanie interesującej mnie funkcji do istniejącej funkcji errorcolor?
Zaznaczam od razu, że właściwie nie znam się na php, a wszelkie zmiany w kodach przeprowadzam "metodą prób i błędów" wielokrotnymi przeróbkami.