我知道如何包含外部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>";
?>
我得到的错误是解析错误:语法错误,意外'名称'(T_STRING),期待','或';'在第10行的E:\ Program Files \ xampp \ htdocs \ cis \ w2 \ functs.php中。如果我在内部插入函数,它可以工作,所以我知道它是如何格式化包含页面的。
答案 0 :(得分:1)
通过突出显示错误的语法非常明显:
echo '</head>";
//-----------^
这一行有不正确的引号,因此你永远不会终止字符串,它会继续运行。
修改强>:
但这不是唯一的问题。您也永远不会使用右大括号关闭您的函数:}
。
答案 1 :(得分:0)
主要问题是你在这一行上有不匹配的引号:
echo '</head>";
然而,我不得不说我很困惑为什么你有HEREDOC。当然你只需要if
声明吗?