SESSION无法保留值| PHP代码中的逻辑错误



我的程序目标1.在我的网站上显示5-6个蓝色的圆圈。2.每当点击一个圆圈时,它都会永久变为红色或绿色。

这是我的代码:

<?php session_start(); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Let's see !</title>
</head>
<body>
<?php 
define("SIZE", 5);

for ( $i = 0 ; $i < SIZE ; $i++ ) //Initializes all Color Blocks to BLUE if not clicked
{
//If Image has been clicked, it takes a Color RED or GREEN
if ( isset($_POST[$i."form"]) ) 
{
if($i % 2 == 0)
$_SESSION[$i] = "green.jpg";
else
$_SESSION[$i] = "red.jpg";
}
else
{   //to check if image was previously clicked.
if ( $_SESSION[$i] == "green.jpg")
$_SESSION[$i] = "green.jpg";
elseif ( $_SESSION[$i] == "red.jpg")
$_SESSION[$i] = "red.jpg";  
else    //if never clicked it will be made blue.
$_SESSION[$i] = "blue.jpg";  
}
}
for ( $i = 0 ; $i < SIZE ; $i++ )
{
?>
<form method="POST" action="index.php">
<input type="image" width=120 src="<?php echo $_SESSION[$i]; ?>" name="mainin"/> 
<input type="hidden" name="<?php echo $i."form"; ?>" value="" /> 
</form>
<?php }
echo session_id(); //Sessions are working correctly. No issue with them.
?>
</body>
</html>

这个节目发生了什么只要点击一个圆圈,它就会变为红色。当点击第二个圆圈时,它会变为绿色,第一个圆圈显示为蓝色。然而,当点击第二个圆圈时,第一个圆圈应该显示为红色,第二个应该显示为绿色。

据我所知,这个程序存在逻辑或概念上的错误。如果有人能告诉我哪里错了,我会很高兴的。我已经想了好几个小时了。

$SESSION不能以数字键开头,请用类似圆圈的东西来附加它们,例如:

$_SESSION['circle_'.$i]

希望能有所帮助。我在我的系统上测试了它,这解决了问题。

一次只能提交一个表单。如果您单击第一个图像,其他图像的代码将进入else分支("检查图像之前是否单击过"),颜色将重置为蓝色。BTW:只有所说分支中的"蓝色"行可以做任何事情,你可以删除其余的。此外,在将其设置为"蓝色"之前,你应该检查会话字段是否为空。

相关内容

最新更新