-2

外部の PHP ページをインクルードする方法やセッションを開始する方法などは知っていますが、私が取り組んでいることのロジックに何か問題があると思います。誰かが見てくれることを願って...

送信する情報を含む PHP ビュー ページを表示するフォームである html ページがあります。セッションを使用して関数を外部ページに配置したかったのですが、構文エラーが発生し続けます。

フォームを送信すると、次のようになります。

<?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)、',' または ';' を期待しています。E:\Program Files\xampp\htdocs\cis\w2\functs.php の 10 行目。関数を内部に挿入すると機能するので、インクルード ページをどのようにフォーマットしているかがわかります。

4

2 に答える 2

1

ここで何が間違っているかを強調する構文から明らかです。

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

この行には間違った引用符が含まれているため、文字列を終了することはなく、継続します。

編集

しかし、それだけが問題ではありません。また、右中括弧で関数を閉じないでください: }.

于 2013-01-28T23:47:49.930 に答える
0

主な問題は、この行の引用符が一致していないことです。

echo '</head>";

しかし、なぜあなたが HEREDOC を持っているのか、私は混乱していると言わざるを得ません。if確かに、ステートメントだけが必要ですか?

于 2013-01-28T23:47:12.293 に答える