SESSIONS:为多个php页面使用用户输入变量

时间:2015-09-25 12:24:54

标签: 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"];?>">
        <a href ="2ndpage.php"> 
             <input type="button" name="select" value="select">
        </a>
</form>

2ndpage.php

<?php
    session_start();
    echo $_SESSION[$num1];
?>

嗯,它不起作用,我得到了很多未定义的索引错误。任何修理人员?提前谢谢。

5 个答案:

答案 0 :(得分:0)

看看表单处理:

http://www.w3schools.com/php/php_forms.asp

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

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

答案 1 :(得分:0)

我不认为你理解这一切是如何运作的。您正在让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>

我所做的就是让这个表格做一个基本的POST。如果你想避免这种情况,你可以使用AJAX(使用JS代替HTML的结果相同)

接下来,让我们制作一个基本的process.php中间页

<?php
session_start();
$_SESSION['num1'] = (int)$_POST['num1'];
header('Location: 2ndpage.php');

现在我们有了数据的物流链。您接受HTML中的数据并将其发布到此页面。然后接受它,清理它(请注意我将其转换为(int),因此我们确定这是一个数字),然后向浏览器发出重定向,将您带到原始目标页面,现在应该可以工作。

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

答案 2 :(得分:0)

1stpage.php

<?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>

2ndpage.php

<?php
session_start();
$_SESSION['num1'] = $_POST['num1'];
echo $_SESSION['num1'];
?>

我在这里做的是,如果已将num1偏移量设置到会话中,我首先查看了会话。如果不是那么我将$ num作为空白,我将会话中的值设置为$ num。 现在,当我们输入内容并将其发布在第二页时,已发布的值将分配给会话中的变量并显示。因此,下次您在同一会话中访问1stpage.php时,您将看到上次发布的值。

如果它解决了你的问题,或者这不是你想要的,请告诉我们。

答案 3 :(得分:0)

我相信这就是你要做的事情:

第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>

第2页:

<?php
session_start();
echo $_SESSION['num1'];
?>
  

首先,您按select输入内部值   num1然后点击Click here to See the Value查看。

答案 4 :(得分:-1)

把它放在第一页:

$_SESSION['num1'] = $num1;

这是第二次

$num1 = $_SESSION['num1'];