我是一名新手,在“数据库驱动的网站”中练习。
以下PHP提供了两个错误,几个小时的思考和搜索都没有清除。
当我从浏览器调用页面时,我得到:
解析错误:语法错误,第54行/home/copydesign/www/listjokes.php中的意外$ end
第54行是:“”,这对我来说似乎是正确的。
在BBedit中,第51行显示错误,这是一个空行。第50行是“?>”表示PHP解析的结束。我不想问我是否能够为自己解决这个问题,但如果有人能帮助我,我会非常感激。
以下是整个页面:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>The CopyDesign Internet Joke Database</title>
</head>
<body>
<?php if (isset($_GET['addjoke'])): // Visitor wants to add a joke
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<label>Type a joke here:<br />
<textarea name="joketext" rows="10" cols="40">
</textarea></label><br />
</form>
<?php else: // Display default page
// Open a MySQL connection
$dbcnx = @mysql_connect('solas.phpwebhosting.com', 'copydesign', 'keylock');
// Select the joke database
if (!@mysql_select_db('ijdb')) {
exit('<p>Unable to connect to the joke database at this time.</p>');
}
?>
<p>CopyDesign's Internet Joke Database:</p>
<blockquote>
<?php
// Request the text of all the jokes
$result = @mysql_query('SELECT joketext FROM joke');
if (!result) {
exit('<p>Error performing query: ' .
mysql_error() . '</p>');
}
// Display the text of each joke in a paragraph
while ($row = mysql_fetch_array($result)) {
echo '<p>' . $row['joketext'] . '</p>';
}
?>
</blockquote>
</body>
</html>
答案 0 :(得分:5)
你忘记了:
<?php endif; ?>
您有一个<? if(...): ?>
但没有在网站结束。
答案 1 :(得分:0)
if (isset($_GET['addjoke'])):
并未关闭endif
。关闭它。
答案 2 :(得分:0)
好像您没有关闭<?php if:
<?php else:
声明。 “意外的$ end”通常包含一个括号不匹配或代码块过早结束(并且解析器无法确定块的结尾)
答案 3 :(得分:0)
错误非常具体 - 它告诉您解释器到达脚本的末尾,而它预计会到达已经打开的块的末尾。
我认为您错过了endif