PHP会话变量在2个页面上无法使用

问题描述 投票:2回答:6

创建一个表单,并试图将两个页面的变量传递到一个结果页面。我试过$GET和$POST,从page1.php到result.php都能正常工作,但是当我改用$SESSION时,result.php上的变量没有被传递或回传。这里是page1的php代码,直接到results都不行! 不知道是我的代码有问题还是服务器有问题?Page 1.php:

<?php session_start();?>
<?php
$name = $_SESSION['name']; 
?>
<FORM action="results.php" method="post" enctype="multipart/form-data" id="questionnaire">
<input type="text" name="name" id="name" />

Results.php:

<?php session_start();?>

<html>           
    <body>                   
        <?php 
        $name = $_SESSION['name'];
        echo $name; ?>                               
    </body>           
</html> 
php session variables
6个回答
2
投票

请尝试执行以下代码片段

<?php session_start();?>
<?php
   if($_SERVER['REQUEST_METHOD']=='POST')
   {
    $name = $_POST['name'];
    $_SESSION['name']=$name;
  }
 ?>
  <FORM action="results.php" method="post" enctype="multipart/form-data" id="questionnaire">
  <input type="text" name="name" id="name" />

实际上,在你的代码片段中,$_SESSION['name']的值没有被设置,所以我用HTML表单中的发布值为session变量定义了值。


2
投票

你忘了在你的表格中加入结束标签,而且你没有提交按钮。

<FORM action="results.php" method="post" enctype="multipart/form-data" id="questionnaire">
<input type="text" name="name" id="name" />   
<input type="Submit" value="Submit">
</FORM>

然后在result.php中

<?php session_start();?>

<html>           
    <body>                   
        <?php 

        $_SESSION['name']=$_POST['name'];
        echo  $_SESSION['name']; ?> 
        <br><br>
        <a href="page2.php">page 2</a>  


    </body>           
</html> 

然后我创建了这个page2.php

<?php session_start();?>
<html>
    <body>
        Hi, I am still <?php echo $_SESSION['name'];?>
    </body>
</html>

我这边一切正常。


0
投票

我想你在这一行把你的变量倒置了。

<?php
 $name = $_SESSION['name']; 
?>

你可能想做 :

<?php
$_SESSION['name'] = $name;
?>

0
投票

首先你把名字变量分配给session变量。

<?php session_start();?>
<?php
$_SESSION['name'] = $name;
?>
<FORM action="results.php" method="post" enctype="multipart/form-data" id="questionnaire">
<input type="text" name="name" id="name" />

0
投票

Results.php。

<?
session_start();
$name = isset($_POST['name'])?$_POST['name']:'';

if($name){
$_SESSION['name']=$name;

}
?>
<html>           
<body>                   
    <?php echo $name; ?>                               
</body>           
</html> 

0
投票
Try....
 Page 1.php : <?php session_start();
$_SESSION['name'] = isset($_POST['name']) ? $_POST['name'] : '';
 ?>
  <FORM action="results.php" method="post" enctype="multipart/form-data" id="questionnaire">
  <input type="text" name="name" id="name" />

Results.php:

<?php session_start();?>

<html>           
    <body>                   
        <?php 
        $name = $_SESSION['name'];
        echo $name; ?>                               
    </body>           
</html>
© www.soinside.com 2019 - 2024. All rights reserved.