問題の答えが見つからないようです。$user をグローバル変数として宣言し、後で Cookie (存在する場合) またはフォームによって設定してから、start 関数を呼び出します。start 関数内でその一部をエコーしますが、定義したにもかかわらず Undefined variable: user を取得しています。
<?php
global $user;
function ConsoleLog($message)
{
echo '<script>console.log("' . $message. '")</script>';
}
if (isset($_COOKIE["user"])){
$user = unserialize($_COOKIE["user"]);
start();
}
else{
if (isset($_POST['submit']))
{
$user = array(
"name" => $_POST['name'],
"class" => $_POST['class'],
"school" => $_POST['school'],
);
$expire=time()+60*60*24*365;
setcookie("user",serialize($user), $expire);
start();
}
else
{
echo "Welcome new user!\n<br/>";
echo '<form method="post">
Name: <input type="text" name="name">
Class:<select name="class">
<option value="9">9</option>
</select>
School: <input type="text" name="school">
<input type="submit" name="submit">
</form>';
}
}
function start(){
echo "Your name: " . $user['name'] . "!\n<br/>";
echo "Your class: " . $user['class'] . "\n<br/>";
echo "Your school: " . $user['school'] . "\n<br/>";
?>
<hr/>
<h2>HomePage</h2>
<?php
}
?>