-2

我知道如何包含外部 PHP 页面以及如何启动会话等,但我认为我的工作逻辑有些混乱。希望有人可以看看...

我有一个 html 页面,它是一个表单,它使用它发送给它的信息拉出一个 PHP 视图页面。我想将我的函数与使用会话一起放在外部页面中,但我不断收到语法错误。

当我发送我的表格时,它转到以下内容:

<?php
session_start();
include 'functs.php'; 
if ($_POST && !empty($_POST['name'])) {
$_SESSION['name'] = $_POST['name'];
$_SESSION['time'] = $_POST['time'];
confirmed();
}
else {
print unconfirmed();
}
?>

我的外部页面是这样的:

<?php
function confirmed() {
echo "<head>";
echo "<title>Confirmation Page</title>";
echo '</head>";
echo "<body>";

PRINT <<<HERE

if (isset($_SESSION['name'])) {
echo 'Thank you, '.$_SESSION['name']. ' your reservation is confirmed for ' . $_SESSION['time'] ;
}
else {
echo 'There seems to have been an error processing your reservation. Please ensure that  you have cookies enabled and try your request again' ;
}

HERE;

echo "</body></html>";
?>

我得到的错误是 Parse error: syntax error, unexpected 'name' (T_STRING), expecting ',' or ';' 在第 10 行的 E:\Program Files\xampp\htdocs\cis\w2\functs.php 中。如果我在内部插入函数,它可以工作,所以我知道它与我如何格式化包含页面有关。

4

2 回答 2

1

通过突出显示此处错误的语法非常明显:

echo '</head>";
//-----------^

此行有不正确的引号,因此您永远不会终止字符串,它会继续运行。

编辑

但这不是唯一的问题。你也永远不会用右花括号关闭你的函数:}.

于 2013-01-28T23:47:49.930 回答
0

主要问题是您在此行的引号不匹配:

echo '</head>";

但是,我不得不说我对您为什么拥有 HEREDOC 感到困惑。当然,您只需要if声明吗?

于 2013-01-28T23:47:12.293 回答