我有很多麻烦试图让一个阵列与会话一起工作,如果有人可以提供帮助那就太好了我不会对验证等问题,如果我可以让它工作,我可以扩展它.
Select amount of tickets you require.
1
2
3
4
5
6
7
8
9
10
Select the acomidation you require.
Camping
Caravan
array2.php
session_start();
$checked = $_POST['options'];
$checked2 = $_POST['options2'];
$_SESSION['user'] = true;
$_SESSION['checked'] = $checked;
$_SESSION['checked2'] = $checked2;
header('Location: array3.php');
?>
array3.php
session_start();
if(!isset($_SESSION['user'])){
die("To access this page, you need to LOGIN");
}
$checked = $_SESSION['checked'];
$checked2 = $_SESSION['checked2'];
?>
for($i=0; $i < count($checked && $checked2); $i++){
echo "You have selected to receive " . $checked[$i] . " tickets
";
echo "And you have selected to receive " . $checked2[$i] . " for accommodation are you sure?
";
}
?>
主要问题是值没有从array2传递到array3,欢迎任何帮助.
编辑 – 这工作正常,直到我尝试添加会话以使其在多个页面上工作,所以我敢肯定问题出在哪里
EDIT2 – 感谢所有的帮助,当我拿出来的时候,我让它工作了
$checked = $_POST['options'];
$checked2 = $_POST['options2'];
从阵列3它工作:)非常感谢!
解决方法:
count($checked && $checked2)
……是你的问题.
$checked&& $checked2是一个逻辑表达式,它将为true或false,这意味着count()调用将始终返回false,而false将在数字比较中等于0(小于
但是,在这种情况下使用数组是不合适的,因为你使用了< select>没有多属性的元素因此它只表示一个值,这意味着该数组只能保存一个值.你应该将它简化为标量值,你会发现a)它有效,b)一般来说它更容易.
标签:php,arrays,session
来源: https://codeday.me/bug/20190529/1179442.html