PHP $ _POST到数组和输出数组

时间:2015-10-19 15:06:10

标签: php forms post foreach

我一直在尝试创建一个php脚本,它从文本表单中获取任何数字,并将其放入数组中。然后我想循环遍历数组并输出每个数字。

到目前为止,在谷歌上搜索一下,我已经提出了这段代码。不幸的是,它不起作用。奇怪的是,我实际上已经让它在某些时候起作用,但不管怎样,代码在不实际更改脚本中的任何内容的情况下将不再起作用。

任何人都可以帮我完成这个,我的版本在某些时候起作用但不再适用。

(我知道我应该过滤输入,但因为这只是一个练习并不重要。)

<html>
<head>
    <title>13.13</title>

<body>
    <h2> Inputting numbers into array through form</h2>
    <br>
    <br>

    <form>
        <input type="text" name="number" />
        <input type="button" value="submit" name="submit" />
    </form>

<?php
    session_start();    

        if (isset($_REQUEST['submit'])) {
            $number = $_REQUEST['number'];

            if (!isSet($_SESSION['number'])) {
                $_SESSION['number'] = array();
            }
        array_push($_SESSION['number'], $number);

        foreach($_SESSION['number'] as $key => $val) {
            echo $key . ">" . $val;
        }
    }

?>    

</body>
</html>

2 个答案:

答案 0 :(得分:1)

在任何HTML输出之前将session_start()移到代码顶部。在已经发送标题之后,您无法启动会话 - 并且因为已经发送了HTML输出而已经发送了它们。

无论如何,这只是一种很好的做法。

答案 1 :(得分:0)

您需要在表单中定义<?php switch ($_POST['optradio']) { case "small": header("Location: http://www.google.com"); break; case "medium": header("Location: http://www.yahoo.com"); break; case "large": header("Location: http://www.bing.com"); break; case "extra-large": header("Location: http://www.bbc.co.uk"); break; default:header("Location: http://www.theguardian.co.uk"); /* if $_POST['option'] was none of the above */ } ?>

此处'完整代码也始终将d = sqrt((x1-x2)^2,(y1-y2)^2,(z1-z2)^2,) 放在页面顶部。

method

<强>输出 enter image description here