PHP会话功能调试辅助

时间:2013-01-28 23:44:09

标签: php function session

我知道如何包含外部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中。如果我在内部插入函数,它可以工作,所以我知道它是如何格式化包含页面的。

2 个答案:

答案 0 :(得分:1)

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

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

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

修改

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

答案 1 :(得分:0)

主要问题是你在这一行上有不匹配的引号:

echo '</head>";

然而,我不得不说我很困惑为什么你有HEREDOC。当然你只需要if声明吗?