Oto prosty formularz kontaktowy:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>CONTACT</title>
<link rel="STYLESHEET" type="text/css" href="style.css">
</head>
<body style="background: white;">
<br>
<center>
<b>CONTACT</b>
</center>
<p align="center">* <i>- Required!!!</i></p><br>
<?
if($name==""){
$errorcolor_1 = "red";
$error = "error";
}
else{
$errorcolor_1 = "black";
}
if($comment==""){
$errorcolor_2 = "red";
$error = "error";
}
else{
$errorcolor_2 = "black";
}
if($contact==""){
$errorcolor_3 = "red";
$error = "error";
}
else{
$errorcolor_3 = "black";
}
if(!$action){
$action = "note";
}
if($error=="error"||$action=="note"){
?>
<div align="center">
<form action="send.php" method="post">
<font color="
<? echo $errorcolor_1; ?>">Name*</font><br />
<input type="text" name="name" style="width: 250px; height: 17px;"
<? if(isset($name)) echo "value='$name'";?> class="note"><br />
<table border="0" cellpadding="0" cellspacing="0" width="150">
<tr>
<td width="30"></td>
<td width="120"><font color="
<? echo $errorcolor_3; ?>">Contact Type*</font><br>
<input class="note" type="radio" value="--none--" name="contact" style="border: 0"><font color="#ca0000">--none--</font>
<br><input class="note" type="radio" value="@" name="contact" style="border: 0">e-Mail
<br><input class="note" type="radio" value="http://" name="contact" style="border: 0">URL
</td>
</tr>
</table>
Contact Address<br />
<input type="text" name="address" style="width: 250px; height: 17px;" class="note"><br />
<font color="
<? echo $errorcolor_2; ?>">Comment*</font><br />
<textarea name="comment" cols="39" rows="6" class="note">
<? if(isset($comment)) echo "value='$comment'";?></textarea><br /><br />
<input type="submit" name="action" value="Send" class="note">
<input type="Hidden" name="action" value="Send" class="note">
<input type="reset" name="action" value="Reset" class="note">
</form>
</div>
</body>
</html>
a to (nie wiem, czy będzie potrzebne) plik wykonawczy send.php:
<?
$name=$_POST['name'];
$contact=$_POST['contact'];
$address=$_POST['address'];
$comment=$_POST['comment'];
mail("mail@mail.org", "Contact Form", "Name: $name
Contact: $contact
Address: $address
Comment: $comment ");
echo "<p><br><center>Thanks.<br><a href='contact.php'>>Go back<</a></center><br></p>"; ?>
po zgraniu plików na serwer i próbie wejście na stronę formularza pojawia się błąd:
Parse error: parse error, unexpected $ in gj/contact.php on line 75A w linii 75 znajduje się jedynie:
Kod
</div>
Jednocześnie po wyrzuceniu z pliku formularza funkcji sprawdzającej wypełnienie danych pól
<?
if($name==""){
$errorcolor_1 = "red";
$error = "error";
}
else{
$errorcolor_1 = "black";
}
if($comment==""){
$errorcolor_2 = "red";
$error = "error";
}
else{
$errorcolor_2 = "black";
}
if($contact==""){
$errorcolor_3 = "red";
$error = "error";
}
else{
$errorcolor_3 = "black";
}
if(!$action){
$action = "note";
}
if($error=="error"||$action=="note"){
?>
i wywołujących ją poleceń:
<font color="
<? echo $errorcolor_1; ?>">
i
wszystko działa bez zarzutu.
Jaki jest błąd w tej funkcji error? Dodam tylko, że kiedy wrzuci się ją do pliku send.php, formularz pojawia się, ale przy wysyłaniu (niezależnie od wypełnienia lub niewypełnienia pól) pojawia się strona send.php z tym samym błędem, tyle, że linijka błędu wypada na
Kod
?>
...
Może da się uzyskać podobny efekt (tzn. przy niewypełnieniu danych pól wyrazy "Name", "Comment" itp. zmieniają kolor na czerwony) w inny, mniej problematyczny sposób?
Z góry wielkie dzięki za pomoc.