尽管stackoverflow中已经有几篇关于“未定义的_SESSION变量”问题的旧文章,但就我而言,该问题仅发生在我的macbook而不是Windows机器上,因此请将此问题保留在此处:
index.php
<?php session_start(); ?>
<!DOCTYPE html>
<html lang ="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="main.css" />
</head>
<body>
<div>
<h1>Welcome to the Great Number Game!</h1>
<P>I am thinking of a number between 1 and 100</p>
<p>Take a guess!</p>
</div>
<div style="background-color: <?php if (isset($_SESSION['color'])) {
print $_SESSION['color'];
}?>; ">
<form action="process.php" method="post">
<input type="text" placeholder="Guess Number" name="user_guess" id="input_form"><br>
<input type="submit" name="submit" value="Submit">
</form>
$ _ SESSION ['color']在第二个php文件(process.php)中定义。 每当在服务器上打开index.php时,它都会发出“未定义的_SESSION ['color']变量......”之类的警告,但不会在Windows计算机上显示。 我通过添加以下内容来解决该问题:
<?php if (isset($_SESSION['color'])) {
print $_SESSION['color'];
}?>;
我需要在index.php文件中使用$ _SESSION ['color']来防止警告的地方。如果我在index.php中使用许多$ _SESSION变量,那么我将不得不为所有这些变量提供此if(isset()
语句,但这并不是很方便。有什么好的建议吗?