非特定错误,没有明显原因

时间:2012-01-03 16:31:30

标签: php

我是一名新手,在“数据库驱动的网站”中练习。

以下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>

4 个答案:

答案 0 :(得分:5)

你忘记了:

<?php endif; ?> 

您有一个<? if(...): ?>没有在网站结束。

答案 1 :(得分:0)

if (isset($_GET['addjoke'])):并未关闭endif。关闭它。

答案 2 :(得分:0)

好像您没有关闭<?php if: <?php else:声明。 “意外的$ end”通常包含一个括号不匹配或代码块过早结束(并且解析器无法确定块的结尾)

答案 3 :(得分:0)

错误非常具体 - 它告诉您解释器到达脚本的末尾,而它预计会到达已经打开的块的末尾。

我认为您错过了endif