gpt4 book ai didi

php - 从输入表单在 session 中存储一个 php 数组

转载 作者:可可西里 更新时间:2023-10-31 22:45:01 25 4
gpt4 key购买 nike

我在尝试让数组与 session 一起工作时遇到了很多麻烦,如果有人可以提供帮助那会很棒我不关心验证等如果我能让它工作我可以扩展它。

HTML

<form method="post" action="array2.php">
Select amount of tickets you require.
<select name="options[]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
Select the acomidation you require.
<select name="options2[]">
<option value="camping">Camping</option>
<option value="caravan">Caravan</option>
</select>
<input type="submit" value="Go!" />
</form>

array2.php

<?php
session_start();
$checked = $_POST['options'];
$checked2 = $_POST['options2'];
$_SESSION['user'] = true;
$_SESSION['checked'] = $checked;
$_SESSION['checked2'] = $checked2;
header('Location: array3.php');
?>

array3.php

<?php
session_start();
if(!isset($_SESSION['user'])){
die("To access this page, you need to <a href='register.html'>LOGIN</a>");
}
$checked = $_SESSION['checked'];
$checked2 = $_SESSION['checked2'];
?>

<?php
for($i=0; $i < count($checked && $checked2); $i++){
echo "You have selected to receive " . $checked[$i] . " tickets<br/>";
echo "And you have selected to receive " . $checked2[$i] . " for accommodation are you sure? <br/>";
}
?>

主要问题是值没有从 array2 传递到 array3,欢迎任何帮助。

编辑 - 这工作正常,直到我尝试添加 session 以使其在多个页面上工作,所以我确定这就是问题所在

EDIT2 - 感谢所有帮助我的人,当我拿出来的时候它就开始工作了

$checked = $_POST['options'];
$checked2 = $_POST['options2'];

从阵列 3 开始,它起作用了 :) 非常感谢!

最佳答案

count($checked && $checked2)

...是你的问题。

$checked && $checked2是一个逻辑表达式,要么是 truefalse ,这意味着这就是 count()调用将始终返回 false , 和 false将等于 0在数字比较中(小于 <$i 的比较),因此 for 循环不会执行任何迭代。

但是,无论如何,在这种情况下使用数组是不合适的,因为你已经使用了一个<select>。没有 multiple 的元素属性,因此它只会代表一个值,这意味着该数组将永远只包含一个值。您应该将其简化为标量值,您会发现 a) 它有效并且 b) 通常更容易。

关于php - 从输入表单在 session 中存储一个 php 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15086955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com