Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
会话:对多个php页面使用用户输入变量_Php - Fatal编程技术网

会话:对多个php页面使用用户输入变量

会话:对多个php页面使用用户输入变量,php,Php,我正在尝试学习php,我已经在会话部分,我想在第一页上输入一些东西,然后作为第二页的输出 1stpage.php <?php session_start();?> <form method="post"> Enter a number: <input type="number" name="num1" min="1" max="20" value="<?php echo $_SESSION["$num1"];?>">

我正在尝试学习php,我已经在会话部分,我想在第一页上输入一些东西,然后作为第二页的输出

1stpage.php

<?php session_start();?>
    <form method="post"> 
    Enter a number: <input type="number" name="num1" min="1" max="20"  value="<?php echo $_SESSION["$num1"];?>">
        <a href ="2ndpage.php"> 
             <input type="button" name="select" value="select">
        </a>
</form>
<?php session_start();?>
<?php if(isset($_SESSION['num1'])) $num1 = $_SESSION['num1']; else $num1 = ''; ?>

    <form method="post" action="2ndpage.php"> 
    Enter a number: <input type="number" name="num1" min="1" max="20"  value="<?php echo $num1;?>">
    <input type="submit" name="select" value="select">
    </form>


输入一个数字:将其放在第一页:

$_SESSION['num1'] = $num1;
这是在第二天

$num1 = $_SESSION['num1'];

看看表单处理:

如果仍要将值保存到会话中,请使用:

$_SESSION['num1'] = $_POST['num1'];

我想你不明白这一切是怎么回事。您让PHP将一个会话变量输出到一个文本框中,并期望该文本框以某种方式神奇地更新您的会话。在某个地方,您必须将该数据传递回PHP并进行更新。所以让我们把你的代码变成一个过程

<?php session_start(); ?>
<form method="post" action="process.php"> 
    Enter a number: <input type="number" name="num1" min="1" max="20"  value="<?php echo $_SESSION["$num1"];?>">
<input type="submit" name="select" value="select">
</form>
现在我们有了数据的物流链。您接受HTML中的数据并将其发布到此页面。然后它接受它,对它进行消毒(注意我将它转换为
(int)
,因此我们确定这是一个数字),然后向浏览器发出重定向,将您带到原始登录页,现在应该可以工作了

这对于教学过程来说都过于简单了。您可以让表单直接提交到
2ndpage.php
并在那里处理。或者,正如我之前所说,您可以使用AJAX发送到
process.php
,当它返回一些成功参数时,您可以使用JS重定向。这里有很多选项。

1stpage.php

<?php session_start();?>
    <form method="post"> 
    Enter a number: <input type="number" name="num1" min="1" max="20"  value="<?php echo $_SESSION["$num1"];?>">
        <a href ="2ndpage.php"> 
             <input type="button" name="select" value="select">
        </a>
</form>
<?php session_start();?>
<?php if(isset($_SESSION['num1'])) $num1 = $_SESSION['num1']; else $num1 = ''; ?>

    <form method="post" action="2ndpage.php"> 
    Enter a number: <input type="number" name="num1" min="1" max="20"  value="<?php echo $num1;?>">
    <input type="submit" name="select" value="select">
    </form>

输入一个数字:
我在这里所做的是,如果num1偏移量被设置到会话中,我首先查看会话。如果不是,那么我将$num设为空,否则我将session中的赋值设置为$num。 现在,当我们输入某个内容并将其发布到第二页时,发布的值将分配给会话中的变量,并显示出来。因此,下次在同一会话中访问1stpage.php时,您将看到最后发布的值


让我们知道它是否解决了您的实际问题,或者这不是您想要的。

我相信这就是您想要做的:

第1页:

<?php 
session_start();
if(isset($_POST['select'])){
    $num1 = $_POST['num1'];
    $_SESSION['num1'] = $num1;
}
?>
<form method="post"> 
    Enter a number: <input type="number" name="num1" min="1" max="20"  value="<?php echo $_SESSION['num1']; ?>">
<input type="submit" name="select" value="select">
<a href ="2ndpage.php">Click here to See the Value</a>
</form>

输入一个数字:
其中,首先按
选择
,在其中输入值
num1
然后单击
单击此处查看值
查看值


您正在为
$\u会话[“$num1”]赋值这是什么?输入文本值包含一个标记您在这里尝试做什么:
value=“
?我相信您认为您正在将
input
值传递给会话变量,但实际上您正在使用
$\u会话[“$num1”]来分配
input
value,它甚至不存在。如果你想将值传递给PHP脚本进行处理,你需要选择一个类似POST或GET的方法。你可以使用
form method
或使用JS的AJAX函数通过HTML,但无论哪种方法你都必须这样做。你会收到一个未定义的索引通知,不是吗?不是吗?这里就是这里s将失败
,这是旧浏览器不支持的。这如何解决问题?您没有处理会话变量未在第一个浏览器中设置的事实place@Machavity,当我说“把这个放在第一页“,这是设置会话变量。那么,
$num1
在哪里定义?@Machavity,true,获取点。我的回答有点仓促。链接真的很有帮助!谢谢tim。实际上我正在做一个更复杂的程序,所以我试图学习会话是如何工作的,因为我需要在所有php页面中保留变量的值。我需要我能得到的一切帮助。我会尝试每一个代码,直到它工作。非常感谢您的关注。如果我想让值再次出现在第三页中如何?我的意思是,在process.php上创建另一个标题('Location:3rdpage.php')是否也应该将输入值保留在第三页上?
<?php 
session_start();
if(isset($_POST['select'])){
    $num1 = $_POST['num1'];
    $_SESSION['num1'] = $num1;
}
?>
<form method="post"> 
    Enter a number: <input type="number" name="num1" min="1" max="20"  value="<?php echo $_SESSION['num1']; ?>">
<input type="submit" name="select" value="select">
<a href ="2ndpage.php">Click here to See the Value</a>
</form>
<?php
session_start();
echo $_SESSION['num1'];
?>