我对php非常陌生。我认为自己在Java没什么问题,但我想更多地了解网络内容。我非常喜欢HTML和CSS,但是我在php上遇到了很多麻烦。
我正在编写一个非常基本的php代码。我希望它从用户那里获得信息(通过表单),并将其添加到php (POST)中的数组中。然后,我想将数组存储为会话变量,并编写一个for循环,该循环输出HTML列表中的每个索引。
问题:
--代码--
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
<input type="submit">
</form>
</body>
</html>
<?php
$stack = array("");
array_push($stack, $_POST[name]);
for(i < $stack.length){
print_r($stack[i]);
}
?>发布于 2017-03-06 15:12:45
访问会话变量很容易:
session_start() (确保在发送任何header之前调用它)。$_SESSION关联数组。您将能够将任何内容附加到这个数组中。PHP中for循环的语法如下:
foreach (array_expression as $value)
statement或
foreach (array_expression as $key => $value)
statement我希望这能帮上忙。
发布于 2017-03-06 18:57:42
首先,让我们看看您编写的PHP代码行:
我。
$stack = array("");这将创建一个名为array的$stack,其中只有一个""元素。$stack[0]的值为""。您可以命名相关array的元素,如下所示:
$stack = array("name" => "value");在这种情况下,$stack["name"]将是"value"。
二、
array_push($stack, $_POST[name]);这是不正确的,因为name不是变量,也不是字符串。你可能是说:
array_push($stack, $_POST["name"]);这将在数组末尾编写具有$_POST["name"]的"",因此无论$_POST["name"];的值是什么,$stack[1]都应该是。
三、
for(i < $stack.length){这是不正确的语法。你的意思是
for($i = 0; $i < count($stack); $i++){请注意如何将$放在所有变量的前面,以及这个循环与Java的相似之处。
四.
print_r($stack[i]);不正确,您需要现金($),否则您的变量将不合作。
print_r($stack[$i]);但是,您不检查这是POST请求还是GET。当用户加载页面时,它将是一个GET请求,当他提交form时,它将是一个POST请求。第一个(GET)请求将没有$_POST成员($_POST将为空),因为form尚未提交。如果您检查它是否为POST请求,则需要检查"name"是否存在于$_POST中。
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
<input type="submit">
</form>
</body>
</html>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') { //it is a post
if (isset($_POST["name"])) { //name is found inside $_POST
echo "Name is " . $_POST["name"];
}
}
?>Question1:
$_SESSION是array,和$stack一样。你可以这样做:
$_SESSION["name"] = $_POST["name"];这将创建$_SESSION的一个新元素,索引为"name",但是,在这样一个赋值之前,you need to make sure the session was started。
Question2:
您可以使用索引的名称来引用它,就像在Java中一样,但是,在PHP中,如果需要,您也可以使用文本索引,而在Java中,您只能使用整数。
https://stackoverflow.com/questions/42628781
复制相似问题