我一直在這個代碼小時盯着現在,我無法揣摩出我的錯誤是。我知道這個語法錯誤通常是由於某些缺失或不合適的大括號或單/雙引號引起的問題而出現的,我不確定在我的代碼中是否有任何地方。我只是試圖修復我的語法,所以我可以讓代碼完全編譯。任何幫助將非常感激。這裏是我的代碼:語法錯誤,意想不到的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Add to and Read from the Database</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>
<body>
<?php
function print_form() {
echo <<<END
<form action="$_SERVER[PHP_SELF]" method="post">
<h3>Please put your comments below.</h3>
<input type="hidden" name="stage" value="process" >
<p>Name:</p>
<input type="text" size="30" name="WholeName" />
<p>Comment:</p>
<input type="text" size="200" name="Comment" />
<input type ="submit" value ="Submit" >
</form>
END;
}
function process_form() {
print "<p>adding comment...</p>";
$Name = $_POST['WholeName'];
$Comment = $_POST['Comment'];
if(preg_match("^[a-zA-Z]+$", $Name)) {
if(preg_match("^[a-zA-Z0-9]_\-\'[.?!]+$", $Comment)) {
$sql = "insert into comments1 values (
'$Name',
'$Comment')";
$result = mysql_query($sql) or die("Mysql query failed");
} else {
print "invalid name";
}
} else {
print "invalid characters";
}
}
$db = mysql_connect("", "", "");
if (!$db) {
print "Error - Could not connect to mysql";
exit;
}
$er = mysql_select_db("");
if (!$er) {
print "Error - Could not connect to comments1 database";
exit;
}
if (isset($_POST['stage']) && ('process' == $_POST['stage'])) {
process_form();
} else {
print_form();
}
?>
</body>
</html>
這是很好的做法,狀態正是被報告錯誤(即行號和列號)。 – Gian
這的確是「太本地化」的問題 –
只是說明自己節省了大量的頭髮拉:這樣的錯誤可以很容易地通過使用一個很好的IDE,檢查你的代碼進行跟蹤。 – Oldskool