我在一个php文件中有一些php代码。我创建了一个会话数组并将其初始化为0。
但是,我注意到每次按下提交按钮时都会重新创建Session数组。它不会将插入的值保留到会话数组,而是重新创建会话数组,该数组在索引0上恢复为2,而不是将其替换为4(2 + 2)。
<?php
session_start();
$_SESSION['numbers'] = array(2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
?>
<html>
<head>
<title></title>
</head>
<body>
<form method="POST" action="index.php">
<label>Enter a number</label>
<input type="text" name="num" />
<button type="submit">Submit</button>
</form>
</body>
</html>
<?php
if (isset($_POST["num"]) && !empty($_POST["num"])){
$userinput = $_POST["num"];
foreach($_SESSION['numbers'] as $id => $value){
if(!in_array($userinput, $_SESSION['numbers'])){
$_SESSION['numbers'][$key] = $userinput;
}else{
$key = array_search($userinput, $_SESSION['numbers']);
$_SESSION['numbers'][$key] = $userinput + $value;
echo $userinput ." is in array";
break;
}
}
}
echo "<table border = 1>";
for($col = 0; $col < sizeof($_SESSION['numbers']); $col++){
//echo "<tr>";
echo "<td>".$_SESSION['numbers'][$col]."</td>";
//echo "</tr>";
}
echo "</table>";
foreach ($_SESSION['numbers'] as $id => $value) {
echo $value . ", ";
}
?>
所有代码都在一个php文件中。
谢谢。
答案 0 :(得分:0)
这可以作为可能遇到同样问题的其他人的参考。正如 FirstOne 所建议的那样,这就是我所做的。
我修改了声明会话数组的部分。
<?php
session_start();
if( !isset($_SESSION['numbers']) && !empty($_SESSION['numbers']) ){
$_SESSION['numbers'] = array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
}
?>
if条件阻止重新创建Session数组。实际上,在单击提交按钮时保存或保留提交的所有值。